obiwan1973: Mit JS eine HTML-Textarea in der Höhe anpassen

Hallo zusammen,

ich habe da eine Frage zu HTML-Textareas:

Ich habe eine HTML-Tabelle mit x Datensätzen, jeder Datensatz hat eine Textarea.
Diese werden mittels PHP generiert und befüllt.
Editieren durch den Anwender ist nicht gestattet (readonly).

Nun möchte ich, dass die Textareas automatisch so hoch sind, dass kein Scrollen notwendig ist.

Beim IE ist das ganz einfach:

textarea {
overflow-y: visible;
}

Wie mache ich das bei anderen Browsern. Scheue mich nicht, JS einzusetzen, bspw. eine JS-Funktion, die nach dem Laden der Seite alle Textareas in der Höhe anpasst.

Ich habe im Web ein Beispiel gefunden:

http://aktuell.de.selfhtml.org/artikel/javascript/variable-textarea/
(Das Ding funzt bei mir irgendwie nicht, außerdem möchte ich Arial als Schriftart.)

Und den einen oder anderen Forenbeitrag:

http://forum.de.selfhtml.org/archiv/2001/11/t614/

Gibt es vielleicht die Möglichkeit, mit JS zu prüfen, wie viel manuelle und automatische Zeilenumbrüche in der Textarea sind, um damit die Anzahl Zeilen zu ermitteln und dann die Höhe entsprechend zu ändern?

Please, give me input. Danke Euch.

Gruß

Tommy

  1. Hi,

    Ich habe eine HTML-Tabelle mit x Datensätzen, jeder Datensatz hat eine Textarea.
    Diese werden mittels PHP generiert und befüllt.
    Editieren durch den Anwender ist nicht gestattet (readonly).

    Warum benutzt du denn dann überhaupt textareas dafür?

    Nun möchte ich, dass die Textareas automatisch so hoch sind, dass kein Scrollen notwendig ist.

    Mit einem nicht-Formularelement, das keine vorgegebene Höhe durch rows oder per expliziter Formatierung hat, hättest du das Problem doch gar nicht.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. @@obiwan1973:

    nuqneH

    Ich habe eine HTML-Tabelle mit x Datensätzen, jeder Datensatz hat eine Textarea.
    Diese werden mittels PHP generiert und befüllt.
    Editieren durch den Anwender ist nicht gestattet (readonly).

    Es handelt sich also um ein *Aus*gabefeld.

    Das textarea-Element ist aber für *Ein*gabefelder gedacht. Warum missbrauchst du es?

    Qapla'

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
    1. Om nah hoo pez nyeetz, Gunnar Bittersmann!

      Diese werden mittels PHP generiert und befüllt.
      Editieren durch den Anwender ist nicht gestattet (readonly).

      Es handelt sich also um ein *Aus*gabefeld.

      Wohl nicht: "The output element represents the result of a calculation or user action." [HTML 4.10.15]

      Matthias

      --
      Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Gummi und Gummibärchen.

  3. Hallo Ihr drei,

    ich werde schon kritisiert, bevor ich überhaupt angefangen habe ... :-)

    Also: Der Ausgabetext - der aus der Datenbank kommt - hat so Sachen wie manuelle Zeilenumbrüche und Tabulatoren.

    Das ist auch gut so, das macht den Text übersichtlicher.
    Der Text kommt übrigens aus PlainText-Emails, deswegen.

    So - nun geht es also darum, dass der Text auch so ausgegeben wird, wie er eingegeben wurde.

    HTML-Textareas machen dies möglich - das ist doch gut!

    Darum will ich nun den Text in Textareas ausgeben lassen.

    Eine andere Möglichkeit wäre: Während der Ausgabe die PlainText-Strukturierungen durch HTML-Tags ersetzen - wäre das einfacher? Glaube ich nicht.

    Also dann die entscheidende Frage: Gibt es doch eine Lösung für Variante 1?

    Gruß

    Tommy

    1. Meine Herren,

      Eine andere Möglichkeit wäre: Während der Ausgabe die PlainText-Strukturierungen durch HTML-Tags ersetzen - wäre das einfacher? Glaube ich nicht.

      Oder das pre-Element, das für vorformatierten (engl: preformatted) Text steht.

      Außerdem gibt es die CSS-Eigenschaft white-space, die für sowas zuständig ist.

      --
      Hey Girl,
      i wish you were asynchronous, so you'd give me a callback.