IE: name-Attribut wird nicht gesetzt
Michael
- javascript
Hallo.
Bei einem dynamisch erzeugten Formular sollen zu bestimmten Formularelementen bestimmte name-Attribute gesetzt werden (die der id des Elternelements x entsprechen z.B.).
In einer Funktion wird ein Array f (f = x.getElementsByTagName("input")) durchlaufen und jedem input-Element soll nun z.B. die id von x zugewiesen werden:
for (i=0; i<f.length; i++) {f[i].name = x.id;}
Wenn ich ein alert(x.innerHTML) ausgebe, sehe ich, dass die name-Attribute im IE nicht vorhanden sind (in anderen Browsern hingegen schon). Ich habe es probehalber mal mit f[i].id = x.id probiert und die ids wurden schon gesetzt.
Kann mir bitte jmd. einen Tipp geben, warum die name-Attribute hier nicht gesetzt werden?
Dank und Grüße
Michael
Kann mir bitte jmd. einen Tipp geben, warum die name-Attribute hier nicht gesetzt werden?
Kann ich nicht nachvollziehen.
function setName(el)
{
var f = el.form;
for(var i = 0; i < f.elements.length; i++)
if( f.elements[i] != el) f.elements[i].name = el.id;
}
<form action="#">
<input name="xx" onclick="alert(this.name)">
<input name="xy" onclick="alert(this.name)">
<input name="xz" onclick="alert(this.name)">
<input name="xa" onclick="alert(this.name)">
<input type="button" onclick="setName(this)" value="neu" id="NEU!">
</form>
Struppi.
Hi,
Kann mir bitte jmd. einen Tipp geben, warum die name-Attribute hier nicht gesetzt werden?
Kann ich nicht nachvollziehen.
<form action="#">
<input name="xx" onclick="alert(this.name)">
Weil Deine Form-Elemente nicht dynamisch erzeugt wurden.
cu,
Andreas
--
[Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)
[Schreinerei Waechter](http://www.schreinerei-waechter.de/)
[O o ostern ...](http://ostereier.andreas-waechter.de/)
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
Kann mir bitte jmd. einen Tipp geben, warum die name-Attribute hier nicht gesetzt werden?
Kann ich nicht nachvollziehen.
<form action="#">
<input name="xx" onclick="alert(this.name)">
>
> Weil Deine Form-Elemente nicht dynamisch erzeugt wurden.
Ich wußte doch, da war was....
Struppi.
--
[Javascript ist toll](http://javascript.jstruebig.de/) (Perl auch!)
Hallo,
tut mir leid, hätte meinen Bsp.code nicht ganz so stark aufs wesentliche reduzieren sollen.
Danke trotzdem vielmals
Michael
Hi,
Bei einem dynamisch erzeugten Formular sollen zu bestimmten Formularelementen bestimmte name-Attribute gesetzt werden (die der id des Elternelements x entsprechen z.B.).
http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/name_2.asp - 3. Absatz unter "Remarks"
cu,
Andreas
Hallo Andreas,
danke für die schnelle Antwort!
Werde noch nicht 100%ig schlau daraus:
"Microsoft JScript allows the name to be changed at run time. This does not cause the name in the programming model to change in the collection of elements, but it does change the name used for submitting elements."
Soll das evtl. bedeuten, dass zwar das name-Attribut nicht (sichtbar) geändert wird, aber das Formular trotzdem mit dem entsprechenden Namen versendet wird?
Danke nochmal.
Michael
Hallo Michael,
"Microsoft JScript allows the name to be changed at run time. This does not cause the name in the programming model to change in the collection of elements, but it does change the name used for submitting elements."
Soll das evtl. bedeuten, dass zwar das name-Attribut nicht (sichtbar) geändert wird, aber das Formular trotzdem mit dem entsprechenden Namen versendet wird?
genau so verstehe ich das auch. :-)
Ciao,
Martin