135 votes

Auto élargir une zone de texte à l’aide de jQuery

Comment puis-je faire un textarea étendre automatiquement à l’aide de jQuery ?

170voto

SpYk3HH Points 10533

Si vous ne voulez pas un plugin, il y a une solution très simple

$("textarea").keyup(function(e) {
    while($(this).outerHeight() < this.scrollHeight + parseFloat($(this).css("borderTopWidth")) + parseFloat($(this).css("borderBottomWidth"))) {
        $(this).height($(this).height()+1);
    };
});

Le voir travailler dans un jsFiddle j'ai utilisé pour répondre à une autre textarea question ici.

Pour répondre à la question de le faire en sens inverse ou de la rendre plus petite que le texte est supprimé: jsFiddle

Et si vous NE voulez qu'un plugin

@Jason a conçu un ici

117voto

Reigel Points 34008

J'ai essayé des tas et celui-ci est grand. Le lien est mort. Lire ci-dessous.
Vous pouvez essayer en appuyant sur et maintenez la touche enter dans le textarea. Comparer l'effet avec les autres auto expansion textarea plugin....

edit basé sur les commentaires

$(function() {
   $('#txtMeetingAgenda').autogrow();
});

remarque: vous devez inclure le besoin de js fichiers...

Pour éviter la barre de défilement dans le textarea de clignoter et s'éteint durant l'expansion ou la contraction, vous pouvez définir l' overflow de hidden ainsi:

$('#textMeetingAgenda').css('overflow', 'hidden').autogrow()




Mise à jour:

Le lien ci-dessus est cassé. Mais vous pouvez toujours obtenir les fichiers javascript ici.

33voto

vsync Points 11280

Augmente / diminue textarea. Cette démo utilise jQuery pour la liaison de l’événement, mais il n’est pas un must en quelque sorte.
(aucune prise en charge de l’IE - IE ne répond pas au changement d’attribut lignes )

[PAGE DE DÉMONSTRATION

](http://codepen.io/vsync/pen/frudD)


HTML

CSS

JavaScript (actualisé)

21voto

CD.. Points 23701
<ul> <li><a href="http://plugins.jquery.com/project/autogrow" rel="nofollow"><strong>Auto de plus en plus Textareas</strong></a></li> <li><a href="http://www.jacklmoore.com/autosize/" rel="nofollow"><strong>jQuery Autosize</strong></a></li> </ul>

10voto

pearl's Points 314

J’ai eu un moyen très simple de le faire, avec jQuery.

Fonctionne très bien avec presque tous les navigateur (

Vous pouvez obtenir une solution bien décrite ici.

j’ai mis à jour la réponse à se développer tout en travaillant à `` et le flou, il obtiendra la taille selon la teneur en it.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X