Moin Moin!
Die type-Eigenschaft eines input-Feldes zu ändern, nachdem es bereits ins Dokument eingehängt wurde, kann auch in anderen Browsern als dem IE problematisch sein - weil type eigentlich als read-only definiert ist.
So weit ich mich erinnere, kann man type exakt einmal setzen, und zwar nur bei einem ganz frisch erzeugten Input-Element. D.h.
var inp=document.createElement("input");
inp.type="hidden";
Die MSDN schlägt in der Beschreibung zu createElement eine Alternativ-Syntax vor, die im IE immer funktionieren sollte:
»» var newRadioButton = document.createElement("<INPUT TYPE='RADIO' NAME='RADIOTEST' VALUE='First Choice'>")Also statt des Elementnamens gleich dessen komplettes HTML inkl. Attribute als Parameter übergeben.
Wenn du ausschliesslich für den IE 6 schreibst, kannst du es dabei belassen - sonst muss eine Browserweiche her, da andere Browser diesen Quatsch natürlich nicht akzeptieren.
Ich meine mich zu erinnern, dass ein einfaches Try-Catch vollkommen ausreicht.
var inp,e;
try {
inp=document.createElement('<input type="hidden">'); /* IE */
} catch (e) {
inp=document.createElement('input'); /* Non-IE */
inp.type='hidden';
}
// weiter wie gehabt
Ich habe das dann noch in eine Funktion createInput(typeValue) verpackt und entsprechend an den Parameter angepaßt.
Alexander
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".