2 Fragen zu DOM

Ozzy Ozborn

Erfahrenes Mitglied
Hi,

ich füge mit DOM ein Input Feld an eine Stelle der Seite ein:

var Bild = document.createTextNode("Bild "+nummer+": ");
var input = document.createElement("input");
input.type = "file";
input.name = "datei[]";
input.size = "65";
input.style.width = "500px";

document.getElementsByName('Bild'+nummer+'_1')[0].appendChild(Bild);
document.getElementsByName('Bild'+nummer+'_1')[0].appendChild(input);

Soweit funktioniert das auch;
nun möchte ich aber, dass etwas passiert, wenn sich der Inhalt des Input-Feldes ändert, nämlich soll dann ein neues Objekt angelegt werden (s.o.) Ich habe es so probiert, aber das funktioniert nicht:

input.onchange

Wie bekomme ich so etwas hin? Habe es schon mit "addEventListener" probiert, aber das bekomme ich auch nicht hin.
Sinn ist eigentlich der, dass wenn man eine Datei ausgesucht hat, ein neues Input-Feld erscheinen soll.

Die zweite Frage hat etwas mit der textformatierung zu tun: wie schaffe ich es, dass um das ("Bild "+nummer+": ") noch ein "<span>" gesetzt wird?

Vielen Dank für Eure Hilfe, Ozzy
 
So sollte es gehen:
Code:
<script type="text/javascript">
<!--
//ElementKnoten für span erzeugen
objSpan = document.createElement("span");

//Textknoten erzeugen
objTxt  = document.createTextNode("Bild "+nummer+": ");

//Elementknoten für input erzeugen
objInput= document.createElement("input");
objInput.type = "file";
objInput.name = "datei[]";
objInput.size = "65";
objInput.style.width = "500px";
//Zuweisung des Aufrufes von Funktion 'funktionsname()' beim onchange des input
objInput.onchange = new Function('F','funktionsname()');

//Span einhängen
document.getElementsByName('Bild'+nummer+'_1')[0].appendChild(objSpan);

//Textknoten in span einhängen(span ist momentan der letzte Kindknoten...'lastChild()')
document.getElementsByName('Bild'+nummer+'_1')[0].lastChild.appendChild(objTxt);

//input einhängen
document.getElementsByName('Bild'+nummer+'_1')[0].appendChild(objInput);

//-->
</script>
 
Zurück