4-8练习相关问题

来源:4-8 编程练习

田马达加斯加

2018-11-19 19:13:23

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>qq号,昵称和密码</title>

<style type="text/css">

*{

margin:0;

padding:0;

}

ul,li{

list-style:none;

}

#wrap{

width:1000px;

background-color:#eee;

margin:0 auto;

}

#wrap .title{

height:30px;

line-height:30px;

font-size:16px;

padding-left:20px;

background:#3092d1;

color:#fff;

}

#wrap #reginList{

width:500px;

margin:50px auto;

}

#wrap #reginList li{

line-height:50px;

}

#wrap #reginList label{

display:inline-block;

width:100px;

text-align:right;

margin-right:20px;

color:#666;

font-size:16px;

}

#wrap #reginList input,#wrap #reginList select{

border:1px solid #a9a9a9;

width:155px;

height:20px;

}

#wrap #reginList select{

width:145px;

}

#wrap #reginList label[for="sex"]{

margin-right:30px;

}

#wrap .regin-box #button{

width:70px;

height:35px;

border:1px solid #09529f;

border-radius:10px;

background:#2375ba;

margin:30px 0px 170px 400px;

}

</style>

</head>

<body>

<div id="wrap">

<div class="title">用户注册</div>

<div class="regin-box">

<ul id="reginList">

<li>

<label for="username">用户名:</label>

<input type="text" name="username" id="username"><span id="tips"></span></li>

</li>

<li>

<label for="password">登录密码:</label>

<input type="password" name="password" id="password"/><span id="tips"></span></li>

</li>

<li>

<label for="repassword">确认密码:</label>

<input type="password" name="repassword" id="repassword"/><span id="tips"></span></li>

</li>

<li>

<label for="relname">姓名:</label>

<input type="text" name="relname" id="relname"/><span id="tips"></span></li>

</li>

<li>

<label for="sex">性别:</label>

<select id="sex">

    <option value="male">男</option>

    <option value="female">女</option>

    </select>

    </li>

<li>

<label for="idNumber">身份证号码:</label>

<input type="text" name="idNumber" id="idNumber"/><span id="tips"></span></li>

</li>

<li>

<label for="email">邮箱:</label>

<input type="mail" name="email" id="email"/><span id="tips"></span></li>

</li>

<li>

<label for="tel">手机号码:</label>

<input type="tel" name="tel" id="tel"/><span id="tips"></span>

</li>

</ul>

<input id="button" type="button" name="button" value="提交"/>

</div>

</div>

<script type="text/javascript">

var inputLists=document.getElementsByTagName('input');

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

// 定义一个对象来存放正则表达式

var regExp={

'username':/^[a-z]\w{5,19}$/,

'password':/^[^\s]{6,18}$/,

'relname' :/^[\u4e00-\u9fa5]{2,4}$/,

            'idNumber':/^[\d]{17}[0-9X]$/,

            'mail'    :/^(?:\w+\.)*\w+@(?:\w+\.)+[a-z]+$/,

            'tel'     :/^[1-9]\d{10}$/

};

// 封装一个验证是否填写正确的函数

function checkRegin(pattern,str){

var checkResult=pattern.test(str);

return checkResult;

}

// 封装一个changeTips的函数

function changeTips(span){

if(checkResult){

span.innerHTML='ok';

}else{

span.innerHTML=tipWord;

}

span.style.color='red';

}

var boolen1,boolen2,boolen3,boolen4,boolen5,boolen6;

function whichInput(ele){

if(ele.id==='username'){

var pattern=regExp.username;

var str=ele.value;

tipsWord="6-20位字母、数字或_,字母开头";

boolen1=checkRegin(pattern,str); 

}else if(ele.id==='password'){

pattern=regExp.password;

var str=ele.value;

tipsWord="6-18位 数字、字母或符号,中间不能有空格";

boolen2=checkRegin(pattern,str);

}else if(ele.id==='relname'){

pattern=regExp.relname;

var str=ele.value;

tipsWord="两位到四位中文";

boolen3=checkRegin(pattern,str);

}else if(ele.id==='idNumber'){

pattern=regExp.idNumber;

var str=ele.value;

tipsWord="两位到四位中文";

boolen4=checkRegin(pattern,str);

}else if(ele.id==='mail'){

pattern=regExp.mail;

var str=ele.value;

tipsWord="邮箱格式不正确";

boolen5=checkRegin(pattern,str);

}else{

pattern=regExp.tel;

var str=ele.value;

tipsWord="手机号码不正确";

boolen6=checkRegin(pattern,str);

}

}


for(var i=0,len=inputLists.length;i<len;i++){

inputLists[i].onblur=function(){

var span=this.nextSibling;

whichInput(this);

}

}

</script>

</body>

</html>

老师我的怎么没有反应

写回答

1回答

好帮手慕星星

2018-11-20

代码中没有调用提示信息的方法,参考:

可以将span定义成全局的变量,其它方法中直接使用即可。

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

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

这样修改之后,输入框失去焦点之后,后面会有提示信息,但是在for循环中的时候,包括了确认密码的输入框,而正则以及提示信息中是没有关于确认密码的判断的,所以后面提示信息会有失误,自己可以测试完善下这个问题。

祝学习愉快!

0

0 学习 · 4826 问题

查看课程

相似问题

4-8练习

回答 1

4-4相关问题

回答 2

2-8 编程练习

回答 1

4-6相关问题

回答 1