Gunnar Bittersmann: JS/Jquery: Höhe einer Textarea an Inhalt anpassen?

Beitrag lesen

@@Pit

kann ich mit Jquery die Höhe einer Textarea automatisch so weit aufziehen, dass der komplette Inhalt sichtbar ist?

Dazu fällt mir – nach der Frage

  1. Warum sollte man das überhaupt wollen?

– noch Folgendes ein:

  1. Über HTMLTextAreaElement.value.length kommt man an die Anzahl der eingegebenen Zeichen; daraus kann man die Anzahl der Zeilen abschätzen.

    Das gelingt sehr gut für Sprachen, in denen Zeilen überall (d.h. auch mitten im Wort) umbrochen werden können, bspw. für Chinesisch. Ansonsten gelingt es umso besser, je kürzer die Wörter sind. Pech für Deutsch: lange zusammengesetze Wörter rutschen in eine neue Zeile, so bleiben etlichen Zeilen halbleer. Empirisch kann man für eine gegebene Sprache und eine gegebene Breite das Verhältnis mittlere genutzte Breite zu vorhandener Breite ermitteln und damit die für die Textlänge benötigte Zeilenanzahl abschätzen.

  2. Andere Möglichkeit: Man macht mit JavaScript aus dem textarea-Eingabefeld ein anderes Element wie p oder div, das man auf contenteditable setzt. Das wird dann so hoch dargestellt wie es der aktuelle Inhalt erfordert.

    Man muss das Element dann freilich so kennzeichnen (stylen), dass es für Nutzer als Eingabefeld erkennbar ist – und das auch für alle Nutzer, also ggfs. ARIA-Attribute ergänzen –, und sich auch um die Übertragung des eingegebenen Textes kümmern.

LLAP 🖖

--
“When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory