Alexander (HH): Probleme mit dem dynamischen Hinzufügen eines hidden-Fields

Beitrag lesen

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".