Formularwerte so ändern, daß .innerHTML die Änderung mitbekommt
Dominik Schäfer
- javascript
0 RFZ
Hallo allerseits,
ich ändere über z.B.
document.records_form.track1.value = 'xyz';
die Werte von Eingabefeldern, die in einem Container liegen. z.B.
<form name="records_form" id="records_form">
<div id="container">
<input type="text" name="track1" />
</div>
</form>
an anderer Stelle füge ich über .innerHTML neue Felder hinzu, z.B.
document.getElementById('container').innerHTML += '<input type="text" name="track2" />';
Das Problem ist, daß jedesmal, wenn ich über .innerHTML Felder hinzufüge, die über .value hinzugefügten Inhalte verschwinden - diese Änderungen werden offensichtlich nicht in .innerHTML gespeichert. Wie erreicht man das?
Das einzige, was mir dazu einfiele, wäre, die neuen Felder über document.createElement einzufügen, aber da das hier natürlich nur eine grobe Vereinfachung der eigentlichen Skripte ist, würden diese dadurch gewaltig aufgebläht werden, so daß ich das gerne vermeiden würde.
Das Problem ist, daß jedesmal, wenn ich über .innerHTML Felder hinzufüge, die über .value hinzugefügten Inhalte verschwinden - diese Änderungen werden offensichtlich nicht in .innerHTML gespeichert. Wie erreicht man das?
Ich vermute (!) garnicht, innerHTML ändert ja quasi den Quelltext, dieser enthält aber nicht deine Formulareingaben, daher werden die auch wieder zurückgesetzt.
Eine weitere relativ einfache Möglichkeit wäre, die Werte vor dem hinzufügen eines Feldes auszulesen und danach zurückzuschreiben.