Element.setAttribute -Frage
MichaelR
- javascript
Hallo,
wenn ich per Javascript ein input Element erzeuge (document.createElement('input')) und möchte diesem dann Attribute zuweisen, konkret das "name" Attribute dann wird das schlichtweg gar nicht ausgeführt:
Elm = document.createElement('input');
Elm.setAttribute("name" , 'NameInput1');
Ich weiß, dass das name-Attribute in XHTML 1.1 normalerweise nicht mehr valide ist, aber innerhalb von <form>-Elementen ist laut XHTML Spezifikation das name-Attr. gültig.
Nur wie kann ich das auch setzen?
Über
Elm.name = 'NameInput1';
geht es auch nicht???
Danke für Tipps + Grüße
Michael
Hi MichaelR,
Hallo,
wenn ich per Javascript ein input Element erzeuge (document.createElement('input')) und möchte diesem dann Attribute zuweisen, konkret das "name" Attribute dann wird das schlichtweg gar nicht ausgeführt:
Elm = document.createElement('input');
Naja, du hast es erzeugt, und nu?
Wo wird es in den Elementbaum eingehängt?
Elm.setAttribute("name" , 'NameInput1');
Wo wird das Attribut erzeugt?
Zugegeben, ich bin mir jetzt nicht sicher, aber ich denke, du solltest dir diese beiden Seiten noch mal genau durchlesen.
http://selfhtml.teamone.de/javascript/objekte/document.htm#create_element
http://selfhtml.teamone.de/javascript/objekte/document.htm#create_attribute
Ich habe selbst noch nie mit dieser Technik gearbeitet, aber wenn ich mir die Beschreibungen so durchlese, fällt mir auf, daß du anscheinend willkürlich einige Schritte übersprungen hast.
Ich weiß, dass das name-Attribute in XHTML 1.1 normalerweise nicht mehr valide ist, aber innerhalb von <form>-Elementen ist laut XHTML Spezifikation das name-Attr. gültig.
Das dürfte in diesem Zusammenhang nicht relevant sein.
Gruß
Kurt
Hallo,
Elm = document.createElement('input');
Naja, du hast es erzeugt, und nu?
Wo wird es in den Elementbaum eingehängt?
Das hab' ich hier nicht mehr angeführt weil es ja nicht zum Problem gehört; DokumentenElement.appendChild(Elm); wobei DokumentElement das body Tag darstellt.
Elm.setAttribute("name" , 'NameInput1');
Wo wird das Attribut erzeugt?
Laut Self-HTML reicht setAttribute() - denn wenn das Attribute nicht vorhanden ist wird es erzeugt. Außerdem get createAttribute() nicht bei allen Browsern.
Ich weiß, dass das name-Attribute in XHTML 1.1 normalerweise nicht mehr valide ist, aber innerhalb von <form>-Elementen ist laut XHTML Spezifikation das name-Attr. gültig.
Das dürfte in diesem Zusammenhang nicht relevant sein.
Vielleicht schon, weil das normale input Element kein name-Attribute mehr hat?!
Trotzdem danke + Grüße
Michael
hi,
Elm = document.createElement('input');
Naja, du hast es erzeugt, und nu?
Wo wird es in den Elementbaum eingehängt?Das hab' ich hier nicht mehr angeführt weil es ja nicht zum Problem gehört; DokumentenElement.appendChild(Elm); wobei DokumentElement das body Tag darstellt.
ein input-feld hat in XHTML direkt unterhalb von body doch gar nichts zu suchen.
gruss,
wahsaga
Hallo,
Das hab' ich hier nicht mehr angeführt weil es ja nicht zum Problem gehört; DokumentenElement.appendChild(Elm); wobei DokumentElement das body Tag darstellt.
ein input-feld hat in XHTML direkt unterhalb von body doch gar nichts zu suchen.
Natürlich ist außen ein <form> Tag drum!
Grüße
Michael
hi,
ein input-feld hat in XHTML direkt unterhalb von body doch gar nichts zu suchen.
Natürlich ist außen ein <form> Tag drum!
das widerspricht aber deiner zuvor gemachten aussage
DokumentenElement.appendChild(Elm); wobei DokumentElement das body Tag darstellt.
gruss,
wahsaga
Hi,
ein input-feld hat in XHTML direkt unterhalb von body doch gar nichts zu suchen.
Natürlich ist außen ein <form> Tag drum!
das widerspricht aber deiner zuvor gemachten aussage
DokumentenElement.appendChild(Elm); wobei DokumentElement das body Tag darstellt.
OK - sorry, da habe ich den Schritt mit <form> vergessen. Es ändert aber nichts daran, dass das name-Attribut nicht gesetzt wird :-)
Grüße
MichaelR
Hi Michael,
[...]
Ich habe keine Lust, mich innerhalb weniger Tage zum zweiten Male auf eine Aufgabe zu stürzen und dann feststellen zu müssen, dass das Problem durch etwas verursacht wurde, was der Fragesteller für nicht "erwähnenswert" hielt. [pref:t=69689&m=401559]
Sinnlos vertane Zeit.
Wenn du also Hilfe willst, solltest du in deinem eigenen Interesse auf Nachfragen eingehen und nötigenfalls auch Teile, die du nicht für relevant hältst, mitteilen.
Sorry, aber ich habe keinen Bock darauf, dasselbe Szenario nochmals durchzulaufen.
Gruß
Kurt