请老师看看
来源:2-1 JavaScript表单验证
慕仰7036876
2020-05-30 19:21:16
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="#" method="post" id="frmInfo">
<div id="err" style="color:red">
</div>
<div>
姓名:<input id="name" name="name"/>
</div>
<div>
身份证:<input id="idno" name="idno"/>
</div>
<div>
<input type="submit" />
</div>
</form>
<script type="text/javascript">
document.getElementById("frmInfo").onsubmit = function(){
//在javascript中定义正则表达式对象只需要在/正则表达式/
var regex1 = /^[\u4e00-\u9fa5]{2,8}$/;
var regex2 = /^[1234568]\d{16}[0-9xX]$/
var name = document.getElementById("name").value;
var idno = document.getElementById("idno").value;
if(regex1.test(name) == false){//利用正则表达式检验数据。
document.getElementById("err").innerHTML = "无效姓名";
return false;//代表不提交
}if else(regex2.test(idno) == false){
document.getElementById("err").innerHTML = "无效身份证";
return false;
else{
alert("验证通过,准备提交");
return true;
}
}
</script>
</body>
</html>我想问问为什么我在校验姓名时一切正常,但是加上身份证后就什么也检测不出来了,就像代码全失效了一样。
1回答
同学,你好!之所以无效是因为代码存在语法错误,如下图所示,第一个选中的内容,if else应该改成else if。第二个选中的内容return false;后面少了一个大括号}。

检查语法错误,可以在浏览器中按F12,此时在右侧会给出如下提示,说明语法有问题,并指出错误所在位置是代码32行

把上述代码更改后再保存运行,就会看到第二个错误了
根据错误提示位置,结合上下代码可以查找原因并改正。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题
回答 1
回答 1