Wenn ich dieses Formular teste, funktioniert die Funktion validateJob korrekt, aber es scheint nichts in Bezug auf validateCheckbox oder validateEmail zu passieren. Ich bekomme keinen Fehler.JS Formularüberprüfung findet nicht statt
Für dieses Projekt brauche ich nicht das Formular, um wirklich etwas zu tun, aber validieren. Ich bin ein Anfänger, also hoffe ich, eine kleine Lösung zu finden, anstatt das, was ich bisher habe, komplett neu zu strukturieren.
Hier ist mein Skript:
<script type="text/javascript">
/* <![CDATA[ */
function validateForm(form){
var validation = true;
validation &= validateJob(form);
validation &= validateEmail(form);
validation &= validateCheckbox(form);
return validation;
}
function validateJob(){
var jobSelected=false;
for (var i=0; i<3; ++i) {
if (document.forms[0].job[i].checked == true) {
jobSelected=true;
break;
}
}
if (jobSelected == false) {
window.alert("You must select a job option.");
return false;
}
else {
return true;
}
//function to check check box
function validateCheckbox() {
var contactSelected = false;
if (document.forms[0].contact.checked==true) {
contactSelected=true;
}
if (contactSelected == false) {
window.alert("You must approve being contacted.");
return false;
}
else
return true;
}
//end checkbox check
}
function trim(s)
{
return s.replace(/^\s+|\s+$/, '');
}
function validateEmail() {
var error="";
var tfld = trim(document.forms[0].email);
// value of field with whitespace trimmed off
var emailFilter = /^[^@][email protected][^@.]+\.[^@]*\w\w$/ ;
var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
if (document.forms[0].email.value == "") {
error = "You didn't enter an email address.\n";
} else if (!emailFilter.test(tfld)) {
//test email for illegal characters
error = "Please enter a valid email address.\n";
} else if (document.forms[0].email.value.match(illegalChars)) {
error = "The email address contains illegal characters.\n";
}
window.alert(error);
}
function confirmReset() {
return resetForm;
}
/* ]]> */
</script>
Hier mein html ist:
<form onSubmit="return validateForm(this)">
<p> <label for="name">Full name: </label>
<input type="text" name="fullname"></p>
<p> <label for="email">Email: </label>
<input type="text" name="email"></p>
<p> <label for="job">I am applying to be a: </label><br/>
<input type="radio" name="job">Waiter<br/>
<input type="radio" name="job">Line cook<br/>
<input type="radio" name="job">Other</p>
<p> <label for="contact">Yes, you may contact me </label>
<input type="checkbox" name="contact" ></p>
<input type="submit" value="Submit">
<input type="reset" /></p>
</form>