discoman: Wieviele Checkboxen sind aktiviert?

Hallo,

ich habe folgendes Problem. Ich denke, dass man das mit JavaScript lösen kann, ich weiß nur nicht wie.

Ich habe ein Formular mit 10 Checkboxen. Davon sollen genau 5 aktiviert sein. Nicht mehr und nicht weniger. (Die Zahlen sind nur Beispiele.)

Wie kann man hier beim Absenden überprüfen wieviele Boxen aktiviert sind und ggf. ein Infofenster mit einem Hinweis öffnen, dass es zuviel oder zuwenig sind?

Außerdem wäre es schön, wenn nach jedem Klick auf eine Checkbox (egal ob sie aktiviert oder deaktiviert wurde) ein Hinweis erscheint, wieviele Boxen aktiviert sind und wieviele noch aktiviert, bzw. deaktiviert werden müssen, damit das Formular gesendet werden kann.

Für Hilfe wäre ich dankbar ...

discoman

  1. Hallo,

    Hallo,

    ich habe folgendes Problem. Ich denke, dass man das mit JavaScript lösen kann, ich weiß nur nicht wie.

    Ich habe ein Formular mit 10 Checkboxen. Davon sollen genau 5 aktiviert sein. Nicht mehr und nicht weniger. (Die Zahlen sind nur Beispiele.)

    Du gehst mit einer for-schleife über jede einzelne über, wenn's aktiv ist adierst du einfach irgeneiner variable 1 dazu und kuckst am ende, wie viele es halt sind.

    Außerdem wäre es schön, wenn nach jedem Klick auf eine Checkbox (egal ob sie aktiviert oder deaktiviert wurde) ein Hinweis erscheint, wieviele Boxen aktiviert sind und wieviele noch aktiviert, bzw. deaktiviert werden müssen, damit das Formular gesendet werden kann.

    nervig, würde ich weglessen, abe´r prinzipiell einfach das selbe nur mit onChange

    Grüße aus Düsseldorf,

    Aleksej

    1. Hallo,

      irgendwie bekomme ich das nicht hin. Ich habe die Boxen box1, box2, usw. genannt. Nun bekomme ich aber keine for-Schleife hin, die nach und nach alle Checkboxen abarbeitet.

      Könntet Ihr mir da nochmal einen Tipp geben.

      Vielen Dank!

      discoman

      1. Hallo!

        irgendwie bekomme ich das nicht hin. Ich habe die Boxen box1, box2, usw. genannt. Nun bekomme ich aber keine for-Schleife hin, die nach und nach alle Checkboxen abarbeitet.

        Könntet Ihr mir da nochmal einen Tipp geben.

        In dem Beispiel gehe ich davon aus, daß es keine anderen Element außer Checkboxen im gesamten Formular gibt.

        Wenn Du noch andere Formularelemente hast und Du die Position der Checkboxen kennst und die Checkboxen hintereinander im Formularelementen folgen, kannst Du das Formular auch nur von und bis zu einem Elementen-Index durchlaufen.

        var von = 5; // z.B.
        var bis = 13; // z.B.

        for(i = von; i < bis; i++)
         {
           if(document.forms[0].elements[i].checked)
              {
            c++;
              }
         }

        Sind die Checkboxen mit anderen Formularelementen vermischt, solltest Du noch immer den Elemententype abfragen, bevor Du auf "checked" testest.
        </javascript/objekte/elements.htm#type>

        <html>
        <head>
        <script language="JavaScript">
        <!--
        function zaehle()
         {
          var c = 0;
          for(i = 0; i < document.forms[0].length; i++)
           {
            if(document.forms[0].elements[i].checked)
             {
              c++;
             }
           }
          alert("Es sind " + c + " Checkboxen angekreuzt!");
         }
        //-->
        </script>
        </head>

        <body>

        <a href="#" onclick="zaehle()">zählen</a>

        <form>
        <input type="Checkbox" name="bla"><br>
        <input type="Checkbox" name="bla"><br>
        <input type="Checkbox" name="bla"><br>
        <input type="Checkbox" name="bla"><br>
        <input type="Checkbox" name="bla"><br>
        <input type="Checkbox" name="bla"><br>
        <input type="Checkbox" name="bla"><br>
        <input type="Checkbox" name="bla"><br>
        </form>

        </body>
        </html>

        </javascript/objekte/forms.htm>
        </javascript/objekte/elements.htm>

        MfG, André Laugks
        L-Andre @ gmx.de