text im Input feld eingeben, und dann direkt sichtbar ändern
Josef
- javascript
Hallo,
ich habe folgenden Wunsch. Ich habe eine Überschrift <H1>, diese soll der Nutzer mit einem INPUT Feld verändern können und das ohne ein Formular ab zu senden.
Meine versuche sind:
<input type="text" name="" value="" onkeydown="document.getElementByID("1") = "(this.value)";/>
<input type="text" name="" value="" onchange=document.getElementsByTagName("h1")[0].firstChild.data = (this.value); />
Leider ohne Erfolg, jemand anders noch eine idee?
Hi,
<input type="text" name="" value="" onkeydown="document.getElementByID("1") = "(this.value)";/>
hier sehe ich auf Anhieb fünf Fehler:
* Es gibt keine Methode getElementByID(), du meintest wohl getElementById()
* Der Wert "1" ist als ID ungültig
* Du versuchst ein HTML-Elementobjekt selbst zu ersetzen, anstatt seinen Inhalt
* Du weist nur den konstanten String "(this.value)" zu, nicht den Wert des input-Elements
* Du verzettelst dich mit den Anführungszeichen - kontrolliere mal, wo der Attributwert beginnt und wo er endet
<input type="text" name="" value="" onchange=document.getElementsByTagName("h1")[0].firstChild.data = (this.value); />
Hier sehe ich nur noch zwei Fehler:
* Du sprichst nicht dein gefundenes h1-Element an, sondern dessen erstes Kindelement. Hat es denn eins?
* Du scheinst XHTML zu verwenden, setzt aber nicht alle Attributwerte in Anführungszeichen
Außerdem ist es natürlich überflüssig, den Ausdruck this.value noch zu klammern. Tut aber auch nicht weh.
Leider ohne Erfolg, jemand anders noch eine idee?
Ja. Versuch's mit Logik und Doku.
Ciao,
Martin
@@Der Martin:
nuqneH
* Du sprichst nicht dein gefundenes h1-Element an, sondern dessen erstes Kindelement. Hat es denn eins?
Nein, nicht dessen erstes Kindelement, sondern dessen erstes Kind. So eins hat es natürlich: den Textknoten.
Es ist allerdings unsinnig, document.getElementsByTagName("h1")
bei jedem Funktionsaufruf neu aufs DOM loszulassen. Das sollte man einmal tun und sich die Referenz auf das h1-Elementobjekt in einer Variablen merken.
Qapla'