Ben: Formularüberprüfung - Checkbox will nicht, wie ich es will

Hallo,

ich habe da ein kleines Problem mit einer Formularüberprüfung. Es soll vor dem Absenden überprüft werden, ob die Checkbox zum Akzeptieren der AGB angeklickt wurde.

Mein Mini-Script sieht folgendermaßen aus:

<script type="text/javascript">
<!--
function formtest()
{
 if(document.bestellung1.agb[0].checked == false)
 {
  alert("Um den Bestellvorgang weiterführen zu können, müssen Sie erst die AGB akzeptieren");
  return false;
 }
}
//-->
</script>

Leider bleibt das Script beim Absenden des Formulars vollkommen unbeachtet.

Da es sich um ein Bestellformular handelt, müsste ich danach noch testen, ob eine der möglichen Leistungen (alles Checkboxen mit dem Namen leistung und dem entsprechenden Value) ausgewählt wurde. Kann ich testen, ob eine dieser Checkboxen aktiviert wurde? Und wenn ja, wie?

Vielen Dank im Voraus und viele Grüße

Ben (the one and only *g*)

--
Fantasie ist wichtiger als Wissen. - Albert Einstein
  1. Leider bleibt das Script beim Absenden des Formulars vollkommen unbeachtet.

    Das

    onSubmit="return formtest();"

    in den <form>-Tag

    und das

    //sonst Form absenden
     else
     {
      return true;
     }

    an Deine Funktion dranhängen?

    HTH

    toby

    1. Hi Toby,

      das onSubmit hatte ich natürlich gesetzt.

      Aber das einfügen des else - Teiles hat auch nicht geholfen... :(

      Es wird aber auch kein Scriptfehler ausgegeben oder etwas derartiges. Ich verstehe das nicht...

      Trotzdem danke!

      Viele Grüße
      Ben

      --
      Fantasie ist wichtiger als Wissen. - Albert Einstein
      1. Es wird aber auch kein Scriptfehler ausgegeben oder etwas derartiges. Ich verstehe das nicht...

        try

        if (document.forms["bestellung1"].elements["agb"].checked != true)
        {
             document.forms["bestellung1"].elements["agb"].focus();
             return false;
        }
             //sonst Form absenden
             else
        {
             return true;
        }

        geht bei mir ohne probs...

        1. Hi Toby,

          danke, klappt jetzt auch so. :-)

          Hast du vielleicht einen Ansatz für mein zweites Problemchen? Ich habe da einige Checkboxen und möchte überprüfen, ob eine davon bzw. keine (dann soll auch ein alert erscheinen und ich gebe return false aus) ausgewählt ist, ohne jede einzeln zu überprüfen? Müsste doch gehen oder?

          Viele Grüße
          Ben

          --
          Fantasie ist wichtiger als Wissen. - Albert Einstein
          1. <form action="index.html" name="bestellung1" onSubmit="return formtest();">
             <input type="checkbox" name="agb">
             <br>
             <input type="radio" name="leistung" value="1">
             <br>
             <input type="radio" name="leistung" value="2">
             <br>
             <input type="radio" name="leistung" value="3">
             <br>
             <input type="submit" name="submit" value="abschicken">

            </form>
            <script language="Javascript">
             function formtest()
             {
              var error = "";
              var okay;

            for(i=0;i<document.forms["bestellung1"].elements["leistung"].length;i++)
              {
               if(document.forms["bestellung1"].leistung[i].checked) okay = true;
              }
              if(!okay) error += "Sie muessen eine Leistung waehlen!";

            if (document.forms["bestellung1"].elements["agb"].checked != true)
              {
                   document.forms["bestellung1"].elements["agb"].focus();
                error += "\r\nSie muessen die AGBs akzeptieren";
              }

            if (error)
              {
               alert(error);
               return false;
              }
              //sonst Form absenden
              else
              {
                 return true;
              }
             }
            </script>

            HTH

            toby

            1. Hi Toby,

              mensch, vielen Dank. Klappt perfekt wie ich es wollte! :-)

              Echt nett, dass du das gleich komplett gemacht hast, hättest dir doch nicht so viele Umstände machen müssen! Ein Ansatz hätte auch gereicht.

              Danke vielmals!

              Viele Grüße
              Ben

              --
              Fantasie ist wichtiger als Wissen. - Albert Einstein
        2. sorry... mein fehler:

          <form action="index.html" name="bestellung1" onSubmit="return formtest();">
           <input type="checkbox" name="agb">
           <br>
           <input type="submit" name="submit" value="abschicken">
          </form>
          <script language="Javascript">
           function formtest()
           {
            if (document.forms["bestellung1"].elements["agb"].checked != true)
            {
                 document.forms["bestellung1"].elements["agb"].focus();
                 return false;
            }
                 //sonst Form absenden
                 else
            {
               //document.forms["bestellung1"].submit();
               return true;
            }
           }
          </script>

  2. Hallo,

    hat sich erledigt. Musste nur das [0] entfernen... So ein lächerlicher Fehler *schäm*

    Viele Grüße
    Ben

    --
    Fantasie ist wichtiger als Wissen. - Albert Einstein