formular - feld - array - abfrage auf checked
quasi_modem
- javascript
Hallo Welt,
ich habe ein Problem mit einer JavaScript-Abfrage auf checked.
gängig ist dieses:
Formularfeld:
<input type="radio" name="var_1" value="1"> Ja
<input type="radio" name="var_1" value="2"> Nein
Die JavaScript-Abfrage erfolgt dann korrekt durch:
if (document.formular.var_1[0].checked == false && document.formular.var_1[1].checked == false) {
// NIX ANGEKREUZT
}
Jetzt kommt mein Problem:
Ich habe ein Checkbox-Array, Mehrfachnennung möglich, muss auch ein Array sein, weil es dynamisch aus der Datenbank kommt. Das benutze ich oft, frage es aber nie per JavaScript ab. Das sieht so aus:
<input type="radio" name="var_2[]" value="1"> rot
<input type="radio" name="var_2[]" value="2"> gelb
<input type="radio" name="var_2[]" value="3"> grün
Wie frage ich dieses auf "checked" ab?
sowohl
document.formular.var_2[0].checked == false
liefert einen Fehler, als auch
document.formular.var_2[][0].checked
als auch
document.formular.var_2[0][0].checked
Kapier nix mehr... Kann mir jemand helfen???
Hoffehoffehoffe...
quasi_modem.
Hallo,
ich habe ein Problem mit einer JavaScript-Abfrage auf checked.
gängig ist dieses:
Formularfeld:
<input type="radio" name="var_1" value="1"> Ja
<input type="radio" name="var_1" value="2"> NeinDie JavaScript-Abfrage erfolgt dann korrekt durch:
if (document.formular.var_1[0].checked == false && document.formular.var_1[1].checked == false) {
// NIX ANGEKREUZT
}
Das ist _eine_ Möglichkeit.
Alle Formulare eines HTML-Dokuments werden beim Parsen in eine Collection (Auflistung) document.forms[] aufgenommen. Dein Formular heißt offensichtlich "formular". Das ist so, weil es den Namen oder die ID "formular" hat. Innerhab der Collection wäre Dein Formular dann document.forms["formular"]. In Kurzschreibweise kann man auch document.formular schreiben.
Alle Elemente eines HTML-Formulars werden beim Parsen in eine Collection (Auflistung) document.forms[formitem].elements[] aufgenommen. Dein Formular heißt "formular", Deine Elemente heißen "var_1". Das ist so, weil sie den Namen "var_1" haben. Innerhab der Collection wäre eines Deiner Elemente dann document.forms["formular"].elements["var_1"], weil es aber mehrere gleichnamige Elemente gibt, entsteht ein Array document.forms["formular"].elements["var_1"][]. In Kurzschreibweise kann man auch dokument.formular.var_1[] schreiben.
Jetzt kommt mein Problem:
<input type="radio" name="var_2[]" value="1"> rot
<input type="radio" name="var_2[]" value="2"> gelb
<input type="radio" name="var_2[]" value="3"> grünWie frage ich dieses auf "checked" ab?
document.forms["formular"].elements["var_1"][0].checked
Übrigens gibt es viele solche Collections und ihre Nutzung ist weit performanter als das Durchsuchen des DOM mit document.getElement...-Methoden.
Beispiele für weitere wichtige Collections:
window.frames[frameitem]
document.images[bildname]
document.links[]
...
http://de.selfhtml.org/javascript/objekte/index.htm
viele Grüße
Axel
Hallo,
<input type="radio" name="var_2[]" value="1"> rot
<input type="radio" name="var_2[]" value="2"> gelb
<input type="radio" name="var_2[]" value="3"> grünWie frage ich dieses auf "checked" ab?
document.forms["formular"].elements["var_2[]"][0].checked
So ist es besser.
viele Grüße
Axel