Un textarea qui s'allonge
By Geoffrey on Monday 26 September 2005, 18:44 - Coding - Permalink
Desfois, on aimerait bien que les textarea s'allongent au fur et à mesure qu'on tape.
Voici ma solution à ce problème:
var formTools = { 'conf': { 'autoAdjust': { 'min': 4, 'max': 20, } }, 'autoAdjust': function(textarea) { rows = textarea.value.split(" ").length; if (rows > this.conf.autoAdjust.min && rows < this.conf.autoAdjust.max) { textarea.rows = rows; } }, }
Le tout s'appelle très simplement de la manière suivante:
<textarea onkeypress="formTools.autoAdjust(this);"></textarea>
Comments
Excellent, j'adore ;-) c'est tout bête mais fallait y penser ...
Astucieux mais comme tu le dis il faut en avoir l'utilité :)
si j'ai bien compris ce que ca faisait... j'ai pas compris comment ca marche..
c'est simple: on split le contenu du textarea sur le caractère (LF), ce qui nous donne un tableau dont le nombre d'éléments est égal au nombre de lignes de texte. Il ne nous reste plus qu'a ajuster le nombre de lignes du textarea lui même :)
Oui... mais si je fais une phrase longue... ca va allé à la ligne automatiquement et y'aura pas de ... si ? (par exemple toute cette phrase tiens sur 4 lignes ds ce textaera, mais je ne suis pas allé à la ligne pour autant)
alors ça c'est pas bête du tout :)
c'est vrai que c'est pas pris en compte dans mon script, et que ça pourrait poser des problèmes...
j'ai ma petite idée sur la résolution de la chose mais je suis pas sur que ça marche très bien :| bref, j'essayerai de trouver une parade :)
aaaahhhhh, ben ca me rassure... j'avais donc bien compris comment fonctionnait le programme et j'avais bien compris le problème :D
/me happy de voir qu'il comprends le javascript de plus en plus...
Salut ! J'ai trouvé ton idée très bonne mais j'ai abordé le problème différemment pour avoir un textarea qui s'allonge.
Mon idée est de mettre le texte du textarea dans un p et de récupérer la taille du p pour appliqué au textarea.
Mon code est beaucoup plus long du coup mais s'adapte bien.
De plus je suis assez puriste au niveau du html alors je n'ai pas mis de 'onkeypress' mais plutôt un getElementById dans le javascript pour ne pas salir (si je puis dire) le html.
Je ne suis pas un expert en javascript et j'attends vos critiques pour l'améliorer.
C'est par ici http://www.etre-re.org/labo/textarea-ajustable/
(Marche pô sous Safari, Re :])