hej. har ett litet problem med min funktion för formulärkontroll. har sökt efter svar, men inte hittat något.
function checkit(type) {
if(type == "cart") {
if(document.forms[0].costumertype.value != "business") {
if (document.forms[0].name.value == "") {
alert("Ange förnamn.");
document.forms[0].name.focus();
return false;
}
if (document.forms[0].surname.value == "") {
alert("Ange efternummer.");
document.forms[0].surname.focus();
return false;
}
} else {
if (document.forms[0].business.value == "") {
alert("Ange företag.");
document.forms[0].business.focus();
return false;
}
}
if (document.forms[0].street.value == "") {
alert("Ange gatuadress.");
document.forms[0].street.focus();
return false;
}
if (document.forms[0].zipcode.value == "") {
alert("Ange postnummer.");
document.forms[0].zipcode.focus();
return false;
}
if (document.forms[0].city.value == "") {
alert("Ange postort.");
document.forms[0].city.focus();
return false;
}
if (document.forms[0].phone.value == "") {
alert("Ange telefonnummer.");
document.forms[0].phone.focus();
return false;
}
if (document.forms[0].email.value == "") {
alert("Ange korrekt e-post.");
document.forms[0].email.focus();
return false;
}
if (document.forms[0].email.value.length > 0) {
if ((document.forms[0].email.value.length < 5) || (document.forms[0].email.value.indexOf("'", 0) > -1) || (document.forms[0].email.value.indexOf('"', 0) > -1) || (document.forms[0].email.value.indexOf('.', 0) == -1) || (document.forms[0].email.value.indexOf('@', 0) == -1) || (document.forms[0].email.value.indexOf(" ") > 0)) {
alert("Ange korrekt e-post.");
document.forms[0].email.focus();
return false;
}
}
[B]
var stuff = document.forms[0].elements.length;
var checked = 0;
for(var i = 0; i <= stuff; ++i) {
if(document.forms[0].elements[i].type == "radio" && document.forms[0].elements[i].checked) {
checked++;
}
}
if(checked == 0) {
alert("Välj leverans.");
return false;
}
[/B]
} else if(type == "dealer") {
// inget här ännu
}
return true;
}
gör funktionen för två olika formulär, men har bara kodat för det första ännu.. (vet att email-kontrollen är aningens osmidig, en alternativ lösning är på g ;)
det är den sista biten som krånglar. scriptet tar ut antalet element i formuläret och kollar vilka radio-knappar som är markerade och sparar detta i checked. är denna noll när alla element är kollade ska ett felmeddelande komma upp.. vilket det inte gör.
scriptet verkar hoppa över if-satsen som kollar om checked == 0 och slutför submittandet av formuläret.
jag är ingen mästare i javascript, så jag kanske har missat något fatalt vad gäller retrun true/false..
tack på förhand!