quasi_modem: formular - feld - array - abfrage auf checked

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.

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

    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ün

    Wie 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

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

      Wie frage ich dieses auf "checked" ab?

      document.forms["formular"].elements["var_2[]"][0].checked

      So ist es besser.

      viele Grüße

      Axel