Je me demande comment ajouter une nouvelle ligne/ligne à textarea pendant l'édition c'est quand le nombre de lettres dépasse le nombre de cols de la zone de texte ajouter automatiquement une nouvelle ligne.ajouter une nouvelle ligne à l'entrée textarea lors de l'édition
Répondre
Une partie du code de base pour y parvenir, testé dans ce jsFiddle (http://jsfiddle.net/NZbZn/). Il aura besoin de travail, évidemment, mais montre le concept de base.
jQuery(document).ready(function(){
//after typing occurs
jQuery('textarea#expander').keyup(function(){
//figure out how many chars
var length = jQuery(this).val().length;
//if more than 10
if(length > 10){
//if the modulus 10 of the length is zero, there are a multiple of 10 chars, so we need to extend by a row
//(NOTE the obvious problem - this will expand while deleting chars too!)
if((length % 10) == 0){
//figure out the number of rows, increment by one, and reset rows attrib
var rows = jQuery(this).attr('rows');
rows++;
jQuery(this).attr('rows', rows);
}
}
});
});
Encore une fois cependant, considérons les implications de l'interface utilisateur en premier.
merci beaucoup :) j'ai pris le plugin jquery ça aide beaucoup après les modifications :) – sam
Vous pouvez utiliser jQuery AutoResize Plugin: http://james.padolsey.com/javascript/jquery-plugin-autoresize/
aha thanx pour cela, mais cela dépend de l'animation qui est à l'heure, pas sur le nombre de cols, de toute façon thanx beaucoup :) – sam
Vous pouvez faire quelque chose comme ceci:
<textarea id="ta" onkeyup="checkScroll(this)" style="height:4em; overflow:auto">
asdf
</textarea>
<script>
function checkScroll(obj) {
if(obj.clientHeight < obj.scrollHeight) {
obj.style.height = (parseInt(obj.style.height)+1) + 'em';
}
}
</script>
Et vous pouvez ajouter une limite de hauteur dans le « si » état si vous voulez.
(. Ne vous inquiétez pas de faire ce discret - il suffit d'obtenir le point à travers)
essayer
var txt = $ ("# textarea idhere");
txt.val (txt.val() + "\ nQuelque chose ici \ n \ nAgain");
$('textarea').keyup(function (e) {
var rows = $(this).val().split("\n");
$(this).prop('rows', rows.length);
});
- 1. Ajouter une nouvelle ligne à DataGrid lors de l'exécution (WPF)
- 2. HTML textarea caractère nouvelle ligne
- 3. C# - ajouter une nouvelle ligne à dataset
- 4. Ajouter une nouvelle ligne à SlickGrid
- 5. ajouter une nouvelle ligne, à après DataGrid
- 6. chaîne à une ligne nouvelle ligne et ne pas ajouter de nouvelle ligne à la fin?
- 7. JSF Comment dynamique ajouter une nouvelle ligne à datatable
- 8. JQuery changer nouvelle ligne de saut de ligne dans TEXTAREA
- 9. jqGrid + editGridRow + ajouter une nouvelle ligne + masquer/afficher les colonnes + ajouter une nouvelle ligne
- 10. Nouvelle ligne dans Textarea à convertir en <br/>
- 11. Flex/Flash TextArea Avoir une case à cocher à chaque nouvelle ligne
- 12. ajouter une nouvelle ligne '' automatique à l'option de selecte
- 13. Comment ajouter de la valeur temps à une nouvelle ligne?
- 14. Ajouter une nouvelle ligne à la fin de la collection
- 15. Ajouter une nouvelle ligne à une donnée dynamique existante
- 16. Essayer d'étendre la ligne de données flex pour ajouter une ligne "ajouter une nouvelle ligne"
- 17. jqgrid ajouter une nouvelle ligne - pré-rempli
- 18. Gridview ajouter dynamiquement une nouvelle ligne
- 19. Ajouter une nouvelle ligne dans pygtk Treeview
- 20. Ajouter une nouvelle ligne au tableau HTML
- 21. Ajouter une nouvelle ligne avec PHPExcel?
- 22. RICH: dataTable - ajouter une nouvelle ligne
- 23. Comment ajouter une nouvelle ligne dans listview?
- 24. Ajouter une nouvelle ligne: ListView vs DataGrid
- 25. Dojo 1.8 ajouter une nouvelle ligne
- 26. Ajouter une classe dans Ajouter une nouvelle ligne
- 27. Devexpress repositoryItemlookupedit ajouter une nouvelle ligne
- 28. Html ajouter des numéros de ligne à textarea
- 29. Ajouter automatiquement une nouvelle ligne à la table lors de l'édition de la dernière
- 30. JQuery datatables Ajouter une nouvelle ligne
Pour être honnête, je ne le ferais pas. Quand arrêtez-vous d'ajouter de nouvelles lignes? Après 5? dix? Quand il prend la moitié de la page? Je vous recommande de définir une largeur et une hauteur raisonnables, et de permettre à la zone de texte d'implémenter le défilement comme les utilisateurs l'attendront. Cependant, si vous avez une bonne raison, alors il devrait être assez simple de garder un œil sur le nombre de caractères via l'événement keyarea de textarea ou similaire et de changer l'attribut rows en cas de besoin. – dartacus
Notez également que les nouveaux navigateurs (FF4, Chrome) permettent de redimensionner les zones de texte en faisant glisser le coin inférieur droit. – Xion
aha mais je ne veux pas que l'utilisateur contrôle la taille de la zone de texte, en plus je ne veux pas qu'il fasse défiler juste faire son commentaire et se sentir tout est ok pendant qu'il édite – sam