Alex Schneider: Zugriff auf dynamisch generierte Felder, Objekte und Arrays

Hallo,

ich habe HTML dynamisch mit Javascript generiert.
Ich bin auf ein altbekanntes Problem gestoßen: Zugriff auf Inhalte von Formularfeldern :-< .
Nun ich las den Artikel
http://forum.de.selfhtml.org/archiv/2001/11/1199/#m7680

Recht interessant und ich dachte die Lösung wäre nahe.
Nun, irgendwie doch nicht. Ich probierte dann testweise zwei statische Anweisungen aus, die ich für gleichwertig hielt. Der zweite Ansatz interessierte mich umso mehr, da er die Möglichkeit bietet, Strings einzusetzen.

Es klappte mit:
alert(document.formAuswahl.Kurs3.value);
Aber es klappte nicht mit:
alert(['document']['formAuswahl']['Kurs3']['value']);

Nun "Kurs3" ist der dynamisch generierte Name, wobei "Kurs" fest ist und "3" durch eine Schleife entsteht. Und da es sich Radiobuttons handelt, muss der Name für die Gruppenzugehörigkeit eindeutig sein.

Gruß Alex

  1. gruss Alex,

    ich habe HTML dynamisch mit Javascript generiert.
    Ich bin auf ein altbekanntes Problem gestoßen: Zugriff auf
    Inhalte von Formularfeldern :-< .
    Nun ich las den Artikel
    http://forum.de.selfhtml.org/archiv/2001/11/1199/#m7680

    wobei Du Dich wahrscheinlich durch die dort aufgezeigten wege
       nur noch tiefer im wald verirrt hast, denn ich glaube zu ver-
       stehen, dass Du nur HTML-code generiert und irgendwo im document
       ausgegeben hast, was noch nochts mit erzeugung von js-objekten
       zur laufzeit zu tun hat;

    ... Der zweite Ansatz interessierte mich umso mehr, da er die
    Möglichkeit bietet, Strings einzusetzen.

    »»

    Es klappte mit:
    alert(document.formAuswahl.Kurs3.value);

    wirklich??-----------------------^^^^^

    Aber es klappte nicht mit:
    alert(['document']['formAuswahl']['Kurs3']['value']);

    da Du offenbar innerhalb einer funktion mit den als string
       uebergebenen formular- und element-namen auf deren eigenschaften
       zugreifen moechtest, darfst Du ruhig beim alten schreibstil
       bleiben, der Dir "sagt" worauf Du zugreifst und den von Dir
       gewuenschten komfort bietet:

    var radioGroup = document.forms["formAuswahl"].elements["Kurs"+i];
    // [i] entspricht dabei Deinem schleifenparameter
       for (var k=0;k<radioGroup.length;k++) {
           if (radioGroup[k].checked) {
               alert(radioGroup[k].value;
               break;
           }
       }

    Nun "Kurs3" ist der dynamisch generierte Name, wobei "Kurs" fest
    ist und "3" durch eine Schleife entsteht. Und da es sich
    Radiobuttons handelt, muss der Name für die Gruppenzugehörigkeit
    eindeutig sein.

    womit alle Deine bedingungen erfuellt waeren;

    by(t)e by(t)e - peterS. - pseliger@gmx.net

    1. Danke!!!

      Jetzt funktioniert es.

      alert(document.formAuswahl.Kurs3.value);

      wirklich??-----------------------^^^^^

      Nein, Du hast Recht. Das ist FALSCH. Weil ich das Problem hatte, übernahm ich meine Ergebnisse mit den Checkboxen. Es fehlt der Feldindex.
      Korrekt müsste es mit den Radiobuttons z.B. heißen:

      alert(document.formAuswahl.Kurs3[0].value)
                                      ^^^

      Gruß Alex