bestimmte Anzahl von Checkboxen zählen

kTULu

Mitglied
Hi zusammen!

JavaScript gehört leider nicht zu meiner Welt, daher hoffe ich hier mal auf Hilfe ;)

In einem Formular erstelle ich dynamisch CheckBoxen. Genau 22 an der Zahl sind das.

Diese gehören nicht einer gemeinsamen Gruppe an. Jetzt muss der User genau 11 dieser CheckBoxen auswählen - nicht mehr und nicht weniger. Bevor er das Formular absendet muss ich dies halt abprüfen und entsprechend ein Alert ausgeben ob es stimmt oder nicht - ob er zu wenig oder zuviel ausgegeben hat. Dies serverseitig zu überprüfen ist kein Problem, aber genau dies möchte ich verhindern da auch ziemlich viele Grafiken mit geladen werden und ich dies dem User nicht zweimal zumuten möchte falls ein Fehler vorhanden ist.

Habt ihr da vielleicht schon etwas fertiges oder zumindest einen Lösungsansatz für mich? Vielen Dank dafür schon mal im Voraus.

Gruss
Michael
 
Hi,

meintest Du vielleicht so etwas:
PHP:
<script language="JavaScript" type="text/javascript">
function count_boxes(amt) {
  var c=0;
  for (i=1;i<=amt;i++) {
    if (document.getElementById("checkbox"+i).checked) c++;
  }
  alert("Es sind "+c+" Checkboxes ausgewählt");
}
</script>
<body>
<input type="checkbox" name="checkbox1" value="checkbox">
<input type="checkbox" name="checkbox2" value="checkbox">
<input type="checkbox" name="checkbox3" value="checkbox">
<input type="checkbox" name="checkbox4" value="checkbox"><br>
<input name="clickme" type="button" id="clickme" value="     Z&auml;hlen     " onClick="count_boxes(4)">
</body>
ich habe das mal mit 4 Checkboxes gemacht, 22 dürften auch kein Problem sein.

Gruß

P.S.: Dieses Script erfordert allerdings eine fortlaufende Nummerierung (ID) der Boxen - bei völlig beliebigen IDs könntest Du diese allerdings in einem Array speichern und dieses als Grundlage für die Adressierung verwenden.
 
Zuletzt bearbeitet:
Durchlaufe alle Elemente des Formulars.
Prüfe die "type"-Eigenschaft des jeweiligen Elementes-->
ist diese "checkbox", überprüfe die "checked"-Eigenschaft-->
ist diese "true", inkrementiere einen Zähler-->
ist der Zähler am Ende=="11"...dann sind 11 Boxen gecheckt.

Name oder ID der Checkbox spielen dabei keine Rolle.
 
@fatalus: Jepp, das ist natürlich eine ausgesprochen elegante Lösung.

An etwas ähnliches habe ich zuerst auch gedacht, nur war mir nicht klar, ob die Checkboxen alle in einem Formular liegen, oder vielleicht verteilt in mehreren (oder auch ohne Form-Tag). Das hätte IMHO den Aufwand um mehrere Schleifen erhöht. Wenn die Formularelemente dynamisch erstellt werden (ich nehme an, mit einem Serverscript?), würde ich beim Anlegen der Checkboxen auch gleich ein Array mit den IDs anlegen, und das ganze reduziert sich wieder auf eine Schleife und eine Bedingung.
Welche Methode letztendlich besser geeignet ist, kommt natürlich immer darauf an, wie das Dokument aufgebaut ist/wird.

Gruß
 
Hi - danke für die Lösungsansätze :) - ich denke mal dass da sicher was von funktionieren wird (muss mich doch intensiver mit JS auseinandersetzen ;)).

Ach ja - die CheckBoxen sind alle innerhalb einer Form gespeichert.
 

Neue Beiträge

Zurück