Formularüberprüfung - Checkbox will nicht, wie ich es will
Ben
- javascript
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*)
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
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
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...
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
<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
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
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>
Hallo,
hat sich erledigt. Musste nur das [0] entfernen... So ein lächerlicher Fehler *schäm*
Viele Grüße
Ben