179 votes

Zone de texte à redimensionner en fonction de la longueur du contenu

J'ai besoin d'une zone de texte dans laquelle je tape mon texte dans la zone. Sa longueur augmente au besoin pour éviter de traiter avec des barres de défilement et il doit être réduit après la suppression de texte! Je ne voulais pas suivre la voie mootools ou jQuery parce que j'ai une forme légère.

309voto

Alsciende Points 11508

Essaye ça :

 <html>
<head>
<script>
function textAreaAdjust(o) {
    o.style.height = "1px";
    o.style.height = (25+o.scrollHeight)+"px";
}
</script>
</head>
<body>
<textarea onkeyup="textAreaAdjust(this)" style="overflow:hidden"></textarea>
</body>
</html>
 

Il fonctionne sous Firefox 3, IE 7, Safari, Opera et Chrome.

11voto

Ravimallya Points 2040

Une solution jQuery a été mise en œuvre et le code source est disponible dans github à l’ adresse suivante : https://github.com/jackmoore/autosize .

6voto

davesmiths Points 23

La réponse d'Alciende n'a pas fonctionné pour moi dans Safari pour une raison quelconque, mais l'a été après une modification mineure:

 function textAreaAdjust(o) {
    o.style.height = "1px";
    setTimeout(function() {
        o.style.height = (o.scrollHeight)+"px";
    }, 1);
}
 

J'espère que cela aide quelqu'un

-4voto

BobbyShaftoe Points 19925

Une méthode consiste à le faire sans JavaScript et cela ressemble à ceci:

     <textarea style="overflow: visible" />
 

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