Zugriff auf dynamisch generierte Felder, Objekte und Arrays
Alex Schneider
- javascript
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
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
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