请问老师我的代码哪里出错了?

请问老师我的代码哪里出错了?

WebContent目录下的index.html
<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>正则表达式测试</title>
 </head>
 <body>
   <div id="err" style="color:red;"></div>
   <form id="frminfo" action="#" method="post">
   <div>
       用户名:<input class="text" id="name" name="name">
   </div>
   <div>
        身份证号:<input class="text" id="idno" name="idno">
   </div>
   <div>
        密码:<input type="password" class="text" id="pass" name="word">
   </div>
   <div>
    <input type="submit" value="提交"/>
   </div>
  </form>
  
  <script type="text/javascript" src="js/jquery-3.4.1.js"></script>
  <script type="text/javascript">
  //给表单设置表单提交事件
   $("#frminfo").submit(function(){
  //在js中定义正则表达式对象格式:“/正则表达式/”
var regexes=[/^[\u4e00-\u9fa5]{2,8}$/,/^[1-68]\d{16}[0-9xX]$/,
/^\w{6}$/];
//用于存储错误提示信息
var messages=["无效的姓名<br/>","无效的身份证号<br/>","无效的密码<br/>"];
//获取表单输入项
var inputs=document.getElementsByClassName("text");
//用于检测所有表单数据是否验证成功
var count=0;
//验证表单数据
for(var i in inputs){
  if(regexes[i].test(inputs[i].value)==false){
  count++;
  $("#err").append(messages[i]);
  }
}

if(count>0){
//表示不提交表单数据
return false;
}
else{
  alert("验证成功,准备提交表单数据");
  return true;
}
   });
  </script>
 </body>
</html>

启动tomcat服务器之后,运行代码,填写正确表单数据:

http://img1.sycdn.imooc.com//climg/5df3612b09eced9605530346.jpg

没有弹出提示框

输入错误的数据,id为“err”的div的错误提示信息只是闪了一下,就没有了

http://img1.sycdn.imooc.com//climg/5df3622809226b4806150364.jpg

有什么解决的办法呢?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,

1、for循环适用于遍历数组。

2、for in循环适用于遍历数组里面的存放的对象。

for/in不适用于迭代对象的属性。如果迭代对象的属性这意味着它将返回对象的所有可迭代属性。也就是如果使用for in循环遍历数组时,有时除了会遍历数组元素外,还会遍历内部自定义属性。举个例子,如果对象中有一个可遍历的属性myArray[i].name,循环将额外执行,遍历到名为“name”的索引,就会出现错误。

所以建议在进行遍历数组时,使用for循环遍历。

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

好帮手慕酷酷 2019-12-13 19:04:24

同学你好,这里同学在遍历时的for循环编写的不正确。这里要使用for循环遍历数组下标索引的方式,遍历数组,具体如下:

http://img1.sycdn.imooc.com//climg/5df442a309a63d0905720157.jpg

如果使用for in会导致数组的for-in循环体除了遍历数组元素外,还会遍历内部自定义属性而出错。

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

  • 提问者 幕名求学 #1
    那什么时候用for-in循环,什么时候用for循环呢?之前我很常用for-in循环来遍历数组都没有出现这种问题呀
    2019-12-13 21:06:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师