BurninLeo: Name für INPUT-Element festlegen

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?

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

    --
    Javascript ist toll (Perl auch!)
  2. 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

    --
    LeagueEditor JavaScript kostenlose Ligaverwaltung || richtig Messen will gelernt sein
  3. 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

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    O o ostern ...
    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.