Bernhard: Eingabe prüfen bei dynamischer checkbox

Hallo
Ich arbeite mit dynamischen checkboxen, die Werte aus einer datenbank auslesen.
Nun möchte ich prüfen, dass mindestens eine checkbox aktiviert wurde.
Ich habe es mit folgendem Javascript innerhalb einer check-funktion versucht, aber ohne Erfolg:
if(form1.zeitraum[].checked != true)  {
    alert ("Bitte Zeitraum eingeben!")
  form1.zeitraum[].focus();
     return (false);
  }
Kann mir da jemand weiterhelfen?
Danke
Bernhard

  1. Hallo Bernhard.

    if(form1.zeitraum[].checked != true)  {

    Das mit den eckigen Klammern ist definitiv zum Scheitern verurteilt, hier kollidieren Javascript und PHP. Sprich die Elemente besser über ihren Index an, also document.form1.elements[Indexnummer]. Den Typ des Elementes verrät dir die Eigenschaft type. Hat das Element den richtigen Typ, fragst du die Eigenschaft checked ab. Hilfsweise kannst du mit Hilfe der Eigenschaft name die passenden Checkboxen rausfinden. Dabei helfen dir die Stringfunktionen.

    Freundschaft!
    Siechfred

    --
    Hinweis an alle Karnevalsmuffel: Aschermittwoch ist alles vorbei.
  2. Hallo Bernhard,

    meinst du so etwas?

    <html>
    <head>
    <title>checkcheck</title>
    <script type="text/javascript" language="JavaScript">
    <!--
    function checkcheck () {
      for (i=0; i<document.form1.elements.length ; i++ ) {
        if(document.form1.elements[i].checked) {
          return false;
        }
      }
      return true;
    }

    function melden () {
      if(checkcheck()) {
        alert("Bitte Zeitraum eingeben!");
      }
    }
    //-->
    </script>
    </head>
    <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
    <form name="form1" onSubmit="melden()" action="" method="" target="">
    <input type="Checkbox" name="Zeitraum1" value="v">
    <input type="Checkbox" name="Zeitraum2" value="v">
    <input type="Checkbox" name="Zeitraum3" value="v">
    <input type="Checkbox" name="Zeitraum4" value="v">
    <input type="submit" name=""  value="pruefen">
    </form>
    </body>
    </html>

    Gruß Gernot

    1. Hallo Gernot,
      Danke! Deine Antwort ist plausibel funktioniert aber bei mir leider nicht.
      Kann das eventuell daran liegen, dass ich die checkbox über eine php schleife einlesen lasse?
      Das sieht bei mir so aus:
      <?php do { ?>
      <?php echo "<input type='checkbox' name='zeitraum[]' value='".$row_Recordset1['zeit']."'> <br>"; ?>
      <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>

      Bernhard

      1. Hallo Bernhard.

        Kann das eventuell daran liegen, dass ich die checkbox über eine php schleife einlesen lasse?

        Nein. Es liegt an den eckigen Klammern, Javascript bekommt nichts von PHP mit.

        Freundschaft!
        Siechfred

        --
        Hinweis an alle Karnevalsmuffel: Aschermittwoch ist alles vorbei.