请老师看看
来源: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