stenie: Breite eines INPUT-Feldes dynamisch anpassen

Gibt es eine Möglichkeit, die Breite (size) eines Input-Formularfeldes in Abhängig vom Inhalt dynamisch anzupassen?

  1. Gibt es eine Möglichkeit, die Breite (size) eines Input-Formularfeldes in Abhängig vom Inhalt dynamisch anzupassen?

    Mit Javascript den Inhalt auslesen, die [http://de.selfhtml.org/javascript/objekte/string.htm#length@title=Länge] bestimmen und abschließend die style-Eigenschaft (bzw. deren Unterelement width) entsprechend setzen. Möglicherweise bietet sich hier die Einheit ex an.

    1. Hm...kompliziert wird die Sache dadurch, dass sich der Inhalt des Feldes ohne neuen Seitenaufbau permanent ändern kann, und diese Änderung von Außerhalb gesteuert wird, also von einem externen (nicht JavaScript-)Programm, dass das Formularfeld anspricht.

      Wäre es vielleicht einfacher, statt mit einem Formular den Text direkt per document.write in das Dokument zu schreiben (falls das mit der externen Lösung überhaupt geht)?

      1. Hallo,

        Hm...kompliziert wird die Sache dadurch, dass sich der Inhalt des Feldes ohne neuen Seitenaufbau permanent ändern kann, und diese Änderung von Außerhalb gesteuert wird, also von einem externen

        Also ist es gar nicht für Usereingaben gedacht?

        (nicht JavaScript-)Programm,

        Ohne JavaScript kannst du keine Inhalte während der Laufzeit austauschen.

        Wäre es vielleicht einfacher, statt mit einem Formular den Text direkt per document.write in das Dokument zu schreiben

        Nein; document.write() funktioniert nur, solange das Dokument geladen wird.

        Verwende die Methoden des DOM[1], um Inhalte zu generieren.

        [1] Ja ich weiß, document.write() gehört auch dazu. Ich meine eher so Schen wie appendChild(), createElement() u.ä.

        mfg. Daniel

      2. Moin

        Wäre es vielleicht einfacher, statt mit einem Formular den Text direkt per document.write in das Dokument zu schreiben (falls das mit der externen Lösung überhaupt geht)?

        in ein bereits geladenes Dokument kannst du mit document.write() nichts mehr schreiben, alles vorhandene würde dabei gelöscht werden.

        Aber mit den Methoden des node-Objekts kannst du sowas sehr gut und einfach.

        Gruß
        rfb

        --
        Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
        (Galileo Galilei)
  2. Hallo,

    Gibt es eine Möglichkeit, die Breite (size) eines Input-Formularfeldes in Abhängig vom Inhalt dynamisch anzupassen?

    Ja; ermittle onkeypress die Anzahl der Zeichen (value.length), schreibe den ermittelten Wert in das size-Attribut und verwende möglichst eine diktengleiche Schriftart.

    mfg. Daniel