请问老师我的代码哪里出错了?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | 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服务器之后,运行代码,填写正确表单数据:
没有弹出提示框
输入错误的数据,id为“err”的div的错误提示信息只是闪了一下,就没有了
有什么解决的办法呢?
15
收起
正在回答
2回答
同学你好,
1、for循环适用于遍历数组。
2、for in循环适用于遍历数组里面的存放的对象。
for/in不适用于迭代对象的属性。如果迭代对象的属性这意味着它将返回对象的所有可迭代属性。也就是如果使用for in循环遍历数组时,有时除了会遍历数组元素外,还会遍历内部自定义属性。举个例子,如果对象中有一个可遍历的属性myArray[i].name,循环将额外执行,遍历到名为“name”的索引,就会出现错误。
所以建议在进行遍历数组时,使用for循环遍历。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
2. 从网页搭建入门JavaWeb
- 参与学习 人
- 提交作业 676 份
- 解答问题 9666 个
本阶段将从前端网页搭建入手,到Java Web基础,前后端结合助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧