我正在尝试验证我的表单,并且第一个警报有效。但是当用户填写正确的数据并单击提交时,表单不再提交。感谢任何帮助,谢谢!
<form name="register" action="register.php" onsubmit="return validateForm()" method="post">
//形成东西
function validateForm() {
if (!checkName() || !checkEmail()) {
return false;
} else {
return true;
}
}
function checkName() {
var name=document.forms["register"]["name"].value;
if (name==null || name=="") {
alert("Please fill out your name");
return false;
}
}
function checkEmail() {
var email=document.forms["register"]["email"].value;
var atpos=email.indexOf("@");
var dotpos=email.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=email.length) {
alert("Not a valid e-mail address");
return false;
}
}
答案 0 :(得分:1)
当电子邮件或名称存在时,您需要checkEmail和checkName才能返回true。你现在得到的东西是未定义的。
Here is a fiddle showing the solution以下是重写的两个函数:
function checkName() {
var name = document.forms["register"]["name"].value;
if (name == null || name == "") {
alert("Please fill out your name");
return false;
}
return true;
}
function checkEmail() {
var email = document.forms["register"]["email"].value;
var atpos = email.indexOf("@");
var dotpos = email.lastIndexOf(".");
if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email.length) {
alert("Not a valid e-mail address");
return false;
}
return true;
}
尽管如此,我最终还是觉得如果你最后去jQuery Validation会更开心。