Prüfen ob mind. 1 Checkbox gecheckt ist

Topol

Mitglied
Hallo,

ich bräuchte wieder einmal eure Hilfe.

Ich habe ein Forumular bei dem mehrere dynamische Checkboxen erstellt werden.

Diese haben alle das gleiche Attribut "name=xyz[]". Nun würde ich gerne vor dem Submit prüfen ob mindestens eine der generierten Checkboxen das Attribut checked="checked" besitzt.
Also im sinne von: if ...=false {alert (bitte mind. 1 checkbox ankreuzen) else { normaler submit }

Bin für Tipps dankbar.

MfG Topo

jemand eine idee? kann auch gerne noch mehr code posten.

Wäre wirklich dringend! Bitte ein Ansatz :(
 
Zuletzt bearbeitet von einem Moderator:
Hi

Wo ist das Problem?
Du sagst eigentlich schon alles, was zu tun ist.

Hier ein Codebeispiel, wie man alle Checkboxen durchgeht und dabei auswählt.
Das sollte sich leicht in eine if-Abfrage mit Alert ändern lassen.

Bitte keine Push´s.
 
Hi,

um auf Formular-Elemente mit Namen der Form "xyz[]" zuzugreifen, verwendest du am besten elements.

Im onload-Event des Dokuments kannst du dir das Formular holen, das geprüft werden soll und den submit-Handler anpassen.

Dort durchläufst du alle Checkboxen und prüfst, ob eine gewählt wurde. Ist das der Fall, wird eine entsprechende boolesche Variable gesetzt und die Schleife beendet.
Am Ende prüfst du, ob die boolsche Variable noch immer false ist. In diesem Fall ist keine Checkbox gesetzt und du musst das Senden des Formulars unterbinden.

Beispiel:
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<script type="text/javascript">
  <!--
window.onload = function(){
  var form = document.getElementsByTagName('form')[0];

  form.onsubmit = function(evt){
    var checkboxes = this.elements["xyz[]"],
        checked = false;

    // Checkboxen durchlaufen und testen, ob eine ausgewählt wurde
    for(var i=0, iLen=checkboxes.length; i<iLen; i++){
      if(checkboxes[i].checked){
      	checked = true;
        break;
      }
    }

    // Falls keine Checkbox gewählt wurde -> submit unterbinden
    if(!checked){
      window.event? (event.returnValue=false) : evt.preventDefault();
    }
  }
}
 //-->
</script>
</head>
<body>
<form method="get" action="get_formdata.php">
  <input type="checkbox" name="xyz[]" value="1" />
  <input type="checkbox" name="xyz[]" value="2" />
  <input type="checkbox" name="xyz[]" value="3" />

  <input type="submit" />
</form>
</body>
</html>
Ciao
Quaese
 

Neue Beiträge

Zurück