Steffi: checkbox angeklickt oder doch nicht?

Hi :o)

da ich unten evt. zu kompliziert beschrieben habe und mein problem immer noch besteht, versuch ich es noch mal allgemeiner zu formulieren:

wie kann ich  mit javascript prüfen, ob als array definierte(!) Checkboxen auch angklickt wurden?

<INPUT TYPE=CHECKBOX NAME="x[]" VALUE=1 > Option 1
 <INPUT TYPE=CHECKBOX NAME="x[]" VALUE=2 > Option 2

sonnige Grüße
Steffi

  1. Hallo :-))

    Ich kenne mich leider in JavaScript nicht aus. Aber wie wäre es, wenn Du die OnClick funktion verwenden würdest, und dann einen Zähler einbaust. So dass dieser am anfang bei 0 steht. Sobald das Feld aktiviert wurde wir der Zähler um 1 erhöht. Und schon weisst Du dass das Feld aktiviert wurde ( und evtl wieder deaktiviert wurde oder wie auch immer )

    Ich hoffe das hilft Dir ein wenig weiter

    Lieben Gruss
    Andreas

  2. Hallo,

    wie kann ich  mit javascript prüfen, ob als array definierte(!) Checkboxen auch angklickt wurden?

    <INPUT TYPE=CHECKBOX NAME="x[]" VALUE=1 > Option 1
    <INPUT TYPE=CHECKBOX NAME="x[]" VALUE=2 > Option 2

    Wenn es das erste Formular im Dokument ist:

    if(document.forms[0].elements["x[]"][0].checked){...}
    if(document.forms[0].elements["x[]"][1].checked){...}

    Den Index kann man auch in einer Schleife durchlaufen.

    MfG, Thomas

    1. YIIPPPIEHH!!

      if(document.forms[0].elements["x[]"][0].checked){...}

      so ging es nicht, aber trotzdem kam ich durch den tipp  auf die entscheidende Lösung:

      if (document.formular.elements["x[0]"].checked)

      vielen dank an alle :o)

      1. Hallo,

        if(document.forms[0].elements["x[]"][0].checked){...}

        so ging es nicht, aber trotzdem kam ich durch den tipp  auf die entscheidende Lösung:

        if (document.formular.elements["x[0]"].checked)

        Dann hast Du aber auch nicht zwei oder mehr Checkboxen mit dem Namen "x[]" -- erst dann entsteht das genannte Array. Im Ausgangsposting sah das aber so aus.

        MfG, Thomas

      2. Hallo Steffi,

        Du kannst keine Checkboxen als Array definieren. Der Name eines Elements ist immer ein String. Deshalb kannst Du die eckigen Klammern genausogut weglassen:

        if (document.formular.elements["x[0]"].checked)

        if (document.formular.elements["x0"].checked)

        Grüße
        Andreas

        1. Hallo,

          Du kannst keine Checkboxen als Array definieren. Der Name eines Elements ist immer ein String.

          Wenn mehrere Elemente (also >1) denselben Namen haben, wird ein Element-Array gebildet, z. B.:

          <form action="">
            <input type="checkbox" name="abc">1
            <input type="checkbox" name="abc">2
            <input type="checkbox" name="abc">3
            <input type="checkbox" name="abc">4
            <input type="checkbox" name="abc">5
            <input type="button" value="Test" onclick="for(i=0;i<document.forms[0].elements['abc'].length;i++){if(document.forms[0].elements['abc'][i].checked)alert('Checkbox '+parseInt(i+1)+' ist aktiviert.');}">
          </form>

          Statt "abc" kann dort auch "abc[]" stehen, was bei der Uebergabe an PHP-Scripts gern verwendet wird.

          MfG, Thomas