Hi,
Aber ChrisB oder Struppi haben das vermutlich besser im Kopf als ich
<answer style="voice-family:igor">You rang, Thur?</answer>
Ich dachte, nur bei <input>. Bzw. es funktioniert nur halb: Ein Zugriff auf das Feld über die elements-Collection oder getElementById geht nur, wenn man createElement("<input id='bla'>") verwendet hat (IIRC).
Ich hab' gerade noch mal einen kleine Test gemacht, zwei Formularfelder erzeugt, name und value gesetzt und in ein Formular eingehängt:
var feld1 = document.createElement("input");
feld1.name = "feld1";
feld1.value = "feld1 value";
document.forms[0].appendChild(feld1);
var feld2 = document.createElement('<input name="feld2"\>');
feld2.value = "feld2 value";
document.forms[0].appendChild(feld2);
document.forms[0].elements[2].onclick = checkfields;
Per POST übermittelt der IE name=value für beide.
Wenn ich über document.forms[0].elements per for-Schleife iteriere, und mir
document.forms[0].elements[i].name
und
document.forms[0].elements[i].value
zur Kontrolle ausgeben lasse, liefert er mit auch für beide(!) den Namen und Inhalt.
Erst dann, wenn ich versuche über document.forms[0].elements['feld1'] zuzugreifen, scheitert es, ergibt undefined.
document.forms[0].elements['feld2'] hingegen ist ansprechbar.
Der Inhalt von name ist also schon irgendwie vorhanden, und auch ermittelbar, wenn man das Feld bspw. über seinen nummerischen Index in der elements-Collection anspricht.
Nur der direkte Zugriff über den Namen ist beim "normal" erzeugten Inputfeld nicht möglich; bei dem mit der zweiten Methode mit "IE-Syntax" erzeugten aber sehr wohl.
Diese IE-Extrawurst muss man also nur dann braten, wenn man wirklich Zugriff auf das Feld über seinen Namen benötigt.
MfG ChrisB
Light travels faster than sound - that's why most people appear bright until you hear them speak.