Zugriff auf Felder mit variablen Namen
Frank S.
- javascript
Hallo zusammen,
Ich würde gerne in einer PHP-Datei mit Javascript auf einzelne Felder zugreifen. Funktioniert soweit auch, bis ich eine Seite mit variablen Feldnamen habe.
Aber mal der Reihe nach. Es funktioniert, wenn ich im HTML-Quelltext folgendes stehen habe:
<form name="bla" method="post">
<select name="karten" onchange="karten_change">
...
</select>
</form>
Und meine JS-Funktion so aussieht:
function karten_change() {
var karte_a = document. bla.karten.options[document. bla.karten.options.selectedIndex].value;
alert(karte_a);
}
Da die Felder im zweiten Schritt allerdings aus einer Datenbank generiert werden und ich die Namen dynamisch definieren muss, haben die Felder jetzt solche Namen:
<form name="bla" method="post">
<select name="karten[1]" onchange="karten_change(1)">
...
</select>
</form>
Ich wollte die Funktion dann entsprechend so anpassen, was aber leider nicht funktioniert:
function karten_change(spiel) {
var karte_a = document. bla.karten[spiel].options[document. bla.karten[spiel].options.selectedIndex].value;
alert(karte_a);
}
Wäre super, wenn mir jemand sagen könnte, wie ich die JS-Funktion entsprechend anpassen muss damit es funktioniert.
Danke schonmal!
Gruß,
Frank
<form name="bla" method="post">
<select name="karten[1]" onchange="karten_change(1)">
Auf so benannte Felder kannst du folgendermaßen zugreifen:
document.forms.bla.elements["karten[1]"]
<http://de.selfhtml.org/javascript/objekte/elements.htm#allgemeines@title=Schema 4 hier>
var karte_a = document. bla.karten[spiel].options[document. bla.karten[spiel].options.selectedIndex].value;
Angenommen spiel ist eine Zahl:
var elementName = "karten[" + spiel + "]"; // Ergibt dann karten[1] usw.
var options = document.bla.elements[elementName].options; // options-Array zwischenspeichern
var karte_a = options[ options.selectedIndex ].value; // Gewählte Option ansprechen
Mathias
Super, danke für die schnelle Antwort, so funktionierts problemlos! :-)