Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表单验证从较低的字段开始。为什么会出现这种奇怪的行为_Javascript_Html - Fatal编程技术网

Javascript 表单验证从较低的字段开始。为什么会出现这种奇怪的行为

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

我是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=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