Name für INPUT-Element festlegen
BurninLeo
- javascript
0 Struppi0 derletztekick0 MudGuard
Hallo!
Wer kann mir verraten, wie ich im Internet Explorer einem neuen Formular-Element einen Namen geben?
Das folgende Javascript funktioniert wunderbar in Firefox und Opera - nur der IE (getestet in 6.0) sträubt sich. Da selbiger bei setAttribute() ohnehin etwas stur ist, hoffe ich auf gute Tipps.
function Test() {
var $test = document.createElement('input');
$test.setAttribute('name', 'mytest');
// Anhängen und zählen
document.getElementsByTagName('body')[0].appendChild($test);
alert("Inputs: "+document.getElementsByName('mytest').length);
}
Ruft man die Funktion im Firefox mehrfach auch, wird jedesmal ein Eingabefeld angehängt und die Zahl der Eingabefelder mit diesem Namen um eins erhöht. Der IE hängt die Felder auch an, findet mit getElementyByName() aber kein einziges.
* Das dritte Argument für setAttribute() hilft nicht weiter.
* IE spuckt keine Fehlermeldung aus.
* $test.nodeName kann ich nicht ändern, da es read only ist.
* Im Original würde natürlich jeder Input einen eindeutigen Namen bekommen.
* id will ich nicht verwenden, weil die Daten per POST an ein PHP-Script verschickt werden sollen.
* HTML-Code per innerHTML einfügen kommt nicht in Frage. Das wäre zu einfach und macht in Tabellen immer wieder Probleme.
Also: Ich würde gerne den Namen per JS setzen und auch darüber auf das Element zugreifen... Gute Ideen?
Wer kann mir verraten, wie ich im Internet Explorer einem neuen Formular-Element einen Namen geben?
Das folgende Javascript funktioniert wunderbar in Firefox und Opera - nur der IE (getestet in 6.0) sträubt sich. Da selbiger bei setAttribute() ohnehin etwas stur ist, hoffe ich auf gute Tipps.
function Test() {
var $test = document.createElement('input');
$test.setAttribute('name', 'mytest');
$test.name = 'mytest';
Also: Ich würde gerne den Namen per JS setzen und auch darüber auf das Element zugreifen... Gute Ideen?
Das klingt merkwürig, wieso willst du wieder püber den Namen zugreifen, du hast doch schon das element in $test?
Struppi.
Hallo BurninLeo,
Also: Ich würde gerne den Namen per JS setzen und auch darüber auf das Element zugreifen...
Versuchs mit direkter Zuwesiung:
$test.name = 'mytest';
Mit freundlichem Gruß
Micha
Hi,
Also: Ich würde gerne den Namen per JS setzen und auch darüber auf das Element zugreifen... Gute Ideen?
Bau ein (schwachsinniges) Script, das den Schwachsinn des IE berücksichtigt: http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/name_2.asp (siehe "Remarks" und "Examples")
cu,
Andreas