请老师看看

来源: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回答

好帮手慕珊

2020-05-31

同学,你好!之所以无效是因为代码存在语法错误,如下图所示,第一个选中的内容,if else应该改成else if。第二个选中的内容return false;后面少了一个大括号}。

http://img.mukewang.com/climg/5ed30eaa09befaf806760305.jpg

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

http://img.mukewang.com/climg/5ed30f0d095b095708710046.jpg

把上述代码更改后再保存运行,就会看到第二个错误了http://img.mukewang.com/climg/5ed30f52091b12dc08710049.jpg

根据错误提示位置,结合上下代码可以查找原因并改正。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0

0 学习 · 9666 问题

查看课程