Javascript 表单验证从较低的字段开始。为什么会出现这种奇怪的行为
我是JS新手,在这里,表单验证从电话字段之后的“name”字段开始,然后是email,然后是上面的字段等等。为什么会有这样奇怪的行为,从底部字段开始验证,即使验证是正确的Javascript 表单验证从较低的字段开始。为什么会出现这种奇怪的行为,javascript,html,Javascript,Html,我是JS新手,在这里,表单验证从电话字段之后的“name”字段开始,然后是email,然后是上面的字段等等。为什么会有这样奇怪的行为,从底部字段开始验证,即使验证是正确的 功能检查表(pform1){ var uname=pform1.username.value; var pswrd=pform1.password.value; var repswrd=pform1.repassword.value; var email=pform1.email.value; var phone=pform
功能检查表(pform1){
var uname=pform1.username.value;
var pswrd=pform1.password.value;
var repswrd=pform1.repassword.value;
var email=pform1.email.value;
var phone=pform1.phone.value;
var name=pform1.name.value;
var cleanstr=phone.replace(/[\(\)\.\-\]/g',);
var err={};
var validemail=/^[a-zA-Z0-9.-]+@[a-zA-Z0-9.-]+\[a-zA-Z]{2,4}$/;
var-minNumberofChars=6;
var maxNumberofChars=16;
var regularExpression=/(?=.*\d)(?=.[a-z])(?=.[a-z])。{6,}/;
//检查必填字段
//密码应至少为6个字符,但不大于16个字符
如果(uname==null | | uname==“”){
err.message=“用户名不能为空”;
err.field=pform1.username;
}
if((pswrd.lengthmaxNumberofChars)){
err.message=“密码长度无效”;
err.field=pform1.password;
}如果(!regularExpression.test(pswrd))为else{
err.message=“密码应至少包含一个数字和一个特殊字符”;
err.field=pform1.password;
}
//验证电子邮件
如果(!(有效邮件测试(电子邮件))){
err.message=“无效电子邮件”;
err.field=pform1.email;
}
//核对电话号码
if(isNaN(parseInt(cleanstr))){
err.message=“无效电话号码”;
err.field=pform1.phone;
}否则如果(phone.length<10 | | phone.length>10){
err.message=“请输入有效的电话号码”;
err.field=pform1.phone;
}
如果(名称==null | |名称==“”){
err.message=“名称不能为空”;
err.field=pform1.name;
}
如果(pswrd!==repswrd){
err.message=“密码不匹配”;
err.field=pform1.repassword;
}
如果(错误消息){
document.getElementById('diveror')。innerHTML=err.message;
err.field.focus();
返回false;
}否则{
window.location.href=“newform2.html”;
返回false;
}
返回true;
}
表格处理
欢迎请填写所有的细节
访问证书
用户名
*
密码
*
最少6个字符,最多16个字符
重新输入密码
*
电子邮件
*
其他资料
名称
*
电话
*
*=必填字段
每次验证失败都会覆盖错误消息
和错误字段
。因此,在最后,它们包含验证失败的最后一个字段
解决此问题的简单方法是将所有if
语句更改为else if
。这样,如果前面的一个检查失败,您将不会执行其余的任何检查,并且err.message
和err.field
将包含第一个失败,而不是最后一个
功能检查表(pform1){
var uname=pform1.username.value;
var pswrd=pform1.password.value;
var repswrd=pform1.repassword.value;
var email=pform1.email.value;
var phone=pform1.phone.value;
var name=pform1.name.value;
var cleanstr=phone.replace(/[\(\)\.\-\]/g',);
var err={};
var validemail=/^[a-zA-Z0-9.-]+@[a-zA-Z0-9.-]+\[a-zA-Z]{2,4}$/;
var-minNumberofChars=6;
var maxNumberofChars=16;
var regularExpression=/(?=.*\d)(?=.[a-z])(?=.[a-z])。{6,}/;
//检查必填字段
//密码应至少为6个字符,但不大于16个字符
如果(uname==null | | uname==“”){
err.message=“用户名不能为空”;
err.field=pform1.username;
}
else if((pswrd.lengthmaxNumberofChars)){
err.message=“密码长度无效”;
err.field=pform1.password;
}如果(!regularExpression.test(pswrd))为else{
err.message=“密码应至少包含一个数字和一个特殊字符”;
err.field=pform1.password;
}
//验证电子邮件
否则,如果(!(validemail.test(电子邮件))){
err.message=“无效电子邮件”;
err.field=pform1.email;
}
//核对电话号码
else if(isNaN(parseInt(cleanstr))){
err.message=“无效电话号码”;
err.field=pform1.phone;
}否则如果(phone.length<10 | | phone.length>10){
err.message=“请输入val