请问老师我的代码哪里出错了?
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积分~
来为老师/同学的回答评分吧
0 星