3-9 编程练习

来源:3-9 编程练习

JakePrim

2019-08-08 11:11:40

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        form{
            width:300px;
            background:pink;
            text-align: center;
            padding:30px 0;
            margin:100px auto;
        }

    </style>
</head>
<body>
    <form id="form">
        <p><input type="text" name="name" id="username" placeholder="请输入账户名"></p>
        <span></span>
        <p><input type="text" name="chinaName" id="chinaName" placeholder="请输入中文名"></p>
        <span></span>
        <p><input type="email" name="eamil" id="email" placeholder="请输入邮箱"></p>
        <span></span>
        <p><input type="submit" value="注册" id="submit"></p>
    </form>
    <script type="text/javascript">
        var spans=document.getElementsByTagName("span");
        
        var username=document.getElementById("username");
     var chinaName=document.getElementById("chinaName");
     var email=document.getElementById("email");
     var submit=document.getElementById("submit");
     var input1=false;
     var input2=false;
     var input3=false;
     
     username.onfocus = function(){
         spans[0].innerHTML = '请输入6-18位的字母数字下划线';
     }
     
     username.onblur = function(){
         var pattern = /^\w{6,18}$/;
         if(this.value == ''){
             spans[0].innerHTML = '账户名不能为空';
         }else{
             if(pattern.test(this.value)){
                 input1 = true;
                 spans[0].innerHTML = '';
             }else{
                 spans[0].innerHTML = '格式不正确';
             }
         }
     }
     
     chinaName.onfocus = function(){
         spans[1].innerHTML = '请输入2-5位的中文名';
     }
     
     chinaName.onblur = function(){
         var pattern = /^[\u4e00-\u9fa5]{2,5}$/;
         if(this.value == ''){
             spans[1].innerHTML = '姓名不能为空';
         }else{
             if(pattern.test(this.value)){
                 input2 = true;
                 spans[1].innerHTML = '';
             }else{
                 spans[1].innerHTML = '格式不正确';
             }
         }
     }
     
     email.onfocus = function(){
         spans[2].innerHTML = '请输入邮箱';
     }
     
     email.onblur = function(){
         var pattern = /^[a-z0-9]+(?:[.-_][a-z0-9]+)*@[a-z0-9]+([.-_][a-z0-9]+)*\.[a-z]{2,4}$/;
         if(this.value == ''){
             spans[2].innerHTML = '邮箱不能为空';
         }else{
             if(pattern.test(this.value)){
                 input3 = true;
                 spans[2].innerHTML = '';
             }else{
                 spans[2].innerHTML = '格式不正确';
             }
         }
     }
     
     submit.onclick = function(){
         if(!input1 || !input2 || !input3){
             alert('请按照要求完成信息');
         }else{
             alert('注册成功');
         }
     }
     
     
    </script>
</body>

</html>


写回答

1回答

好帮手慕慕子

2019-08-08

同学你好, 如下图所示, 如果第一次输入正确,然后修改为不正确的输入, 最后点击提交, 会提示注册成功。因为在输入框失去焦点的时候,错误的情况下没有调整input的值为false哦。 

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

建议修改: 以用户名为例, 其他的同学自己下去调整哦

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

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~

0

0 学习 · 14456 问题

查看课程