我正在使用此代码来验证表单:
if (isEmpty(email)) {
alert("1");
return false;
}
else if (!isEmail(email)) {
alert("2");
return false;
}
if (isEmpty(name)) {
alert("3");
return false;
}
if (isEmpty(age)) {
alert("4");
return false;
}
else if (!isAge(age)) {
alert("5");
return false;
}
if (isEmpty(city)) {
alert("6");
return false;
}
if (isEmpty(comments)) {
alert("7");
return false;
}
当点击“提交”按钮时,如果前两个条件有效(检查电子邮件变量是否为空或不是电子邮件地址格式的条件) - 这意味着如果我将电子邮件输入留空或不是电子邮件地址格式我收到警报(1 或 2)。
问题是其余的验证都被跳过了,如果我将另一个输入留空或没有格式都没有关系。
另外,如果我采用第一个 IF 块:
if (isEmpty(email)) {
alert("1");
return false;
}
else if (!isEmail(email)) {
alert("2");
return false;
}
并将其移至验证块的末尾,一切正常。
我猜我在某处有错误的语法,但我花了 2 个小时寻找却找不到。
附言
这是我正在使用的两个验证功能:
function isEmpty(field) {
if ((field == null || field == "")) {
return true;
}
return false;
}
function isEmail(field) {
var atpos = field.indexOf("@");
var dotpos = field.lastIndexOf(".");
if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length) {
return false;
}
}