老师 帮忙检查下代码,密码验证有点问题,不懂要怎样改

老师 帮忙检查下代码,密码验证有点问题,不懂要怎样改

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<style type="text/css">

span{

color: red;

}

input{

width: 200px;

height: 28px;

padding-left: 10px;

border-radius: 5px;

margin-left: 15px;

}

div{

width: 575px;

margin: 0 auto;

}

span.tag{

display: none;

width: 50px;

height: 6px;

background-color: #DDDDDD;

}

span.warning{

margin-left: 5px;

}

</style>

</head>

<body>

<div>

<p>

<span>*&nbsp;</span>用&nbsp;&nbsp;户&nbsp;&nbsp;名&nbsp;:<input type="text" name="name" id="name" placeholder="用户名设置成功后不可修改"/>

<span class="warning" id="nameWarning"></span>

</p>

<p>

<span>*&nbsp;</span>登入密码&nbsp;:<input type="password" name="password" id="password" placeholder="6-20位字母或数字"/>

<span class="warning" id="passwordWarning"></span>

<span class="tag warning" id="passwordWarning1"></span>

<span class="tag warning" id="passwordWarning2"></span>

<span class="tag warning" id="passwordWarning3"></span>

</p>

<p>

<span>*&nbsp;</span>确认密码&nbsp;:<input type="password" name="newPassword" id="newPassword" placeholder="再次输入您的登入密码"/>

<span class="warning" id="newPasswordWarning"></span>

</p>

<p><input type="submit" class="btn" name="submit" id="submit" value="注册" /></p>

</div>

<script type="text/javascript">

//window上有name属性,所以不推荐在js中使用name作为变量名

var nameInput=document.getElementById('name');

var nameWarning=document.getElementById('nameWarning');

var passwordInput=document.getElementById('password');

var passwordWarning=document.getElementById('passwordWarning');

var passwordWarning1=document.getElementById('passwordWarning1');

var passwordWarning2=document.getElementById('passwordWarning2');

var passwordWarning3=document.getElementById('passwordWarning3');

var newPassword=document.getElementById('newPassword');

var newPasswordWarning=document.getElementById('newPasswordWarning');

var submitInput=document.getElementById('submit');

//用户名验证,6-30位字母、数字或'_',字母开头

nameInput.onblur=function(){

var flag=false;

if (/^[a-zA-Z]\w{5,29}$/.test(nameInput.value)) {

//通过验证

nameWarning.innerText='用户名输入正确';

nameWarning.style.color='green';

flag=true;

} else{

//没有通过验证

//双引号里面嵌套单引号,单引号里面嵌套双引号

nameWarning.innerText="6-30位字母、数字或'_',字母开头";

nameWarning.style.color='red';

flag=false;

}

return flag;

}

//密码验证,6-20位字母或数字

passwordInput.onblur=function(){

var flag=false;

if (passwordInput.value.length>=6 && passwordInput.value.length<=20) {

//通过验证

passwordWarning.style.display="none";

passwordWarning1.style.display="inline-block";

passwordWarning2.style.display="inline-block";

passwordWarning3.style.display="inline-block";

if (/^[a-z]{6,20}$|^[A-Z]{6,20}$|^[0-9]{6,20}$/.test(nameInput.value)) {

passwordWarning1.style.backgroundColor='red';

} else if (/^[a-zA-Z]{6,20}$|^[A-Z0-9]{6,20}$|^[a-z0-9]{6,20}$/.test(nameInput.value)) {

passwordWarning1.style.backgroundColor='red';

passwordWarning2.style.backgroundColor='orange';

} else if (/^[a-zA-Z0-9]{6,20}$/.test(nameInput.value)){

passwordWarning1.style.backgroundColor='red';

passwordWarning2.style.backgroundColor='orange';

passwordWarning3.style.backgroundColor='green';

}

flag=true;

} else{

//没有通过验证

passwordWarning.innerText="6-20位字母或数字";

passwordWarning.style.color='red';

flag=false;

}

return flag;

}

//密码再次验证

newPassword.onblur=function(){

var flag=false;

if(newPassword.value.length==0){

newPasswordWarning.innerText="输入框不能为空";

newPasswordWarning.style.color='red';

flag=false;

} else if (newPassword.value!=passwordInput.value) {

//验证错误,密码不一致

newPasswordWarning.innerText="两次密码输入不一致";

newPasswordWarning.style.color="red";

flag=false;

} else if (newPassword.value==passwordInput.value) {

//通过验证

newPasswordWarning.innerText="两次输入一致";

newPasswordWarning.style.color="green";

flag=true;

}

return flag;

}

//注册验证

submitInput.onclick=function(){

var onName=nameInput.onblur();

var onPassword=passwordInput.onblur();

var onNewPassword=newPassword.onblur();

if (onName==true && onPassword==true && onNewPassword==true) {

alert("信息填写正确");

} else{

alert("请填写正确的信息");

}

}

</script>

</body>

</html>


正在回答

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

2回答

同学你好,建议在每个判断下将样式写完整,保证回删的时候提示正确。参考:

http://img1.sycdn.imooc.com//climg/608636ce092e7e2509140412.jpg

http://img1.sycdn.imooc.com//climg/608636da090325ad07350425.jpg

自己再测试下,祝学习愉快!​

好帮手慕言 2021-04-25 10:20:17

同学你好,密码验证部分,需要检测passwordInput.value,而同学检测是用户名里面的内容,所以是不对的,修改如下:

http://img1.sycdn.imooc.com//climg/6084d14c0967fe9b12920314.jpg

祝学习愉快~

  • 提问者 lcy_18 #1

    修改后发现,密码框不会实时更新,就是输入一次密码满足后,再次删掉至不满足条件,不会更新提示,要怎么修改

    2021-04-25 19:56:54
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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