老师请检查下作业

来源:2-25 项目作业

菜鸟瑞

2021-04-10 05:26:36

<!DOCTYPE html>

<html lang="en">


<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        * {

            padding0;

            margin0;

        }


        .register {

            width600px;

            height500px;

            margin100px auto;

        }


        .register button {

            width200px;

            height30px;

            colorwheat;

            background-colororange;

            displayblock;

            margin50px auto;

            border-radius5px;

            border-colororange;

        }


        .register .warnning {

            margin-left10px;

        }


        input {

            border-radius3px;

            padding-left5px;

            font-size5px;

        }


        b {

            colorred;

        }


        ul {

            positionrelative;

            top-214px;

            left-25px;

        }


        ul li {

            floatright;

            displayinline;

            margin-right10px;

            margin-top7px;

            width92px;

            height10px;

            /* background-color: gray; */

            list-stylenone;


        }

    </style>

</head>


<body>

    <div class="register">

        <div>

            <span><b></b>用 户 名&nbsp;&nbsp;:&nbsp;</span>

            <input type="text" id="nameFixed" placeholder="用户名设置成功后不可修改">

            <span id="userWarning" class="warnning"></span>

            <br>

            <br>

            <span><b></b>登陆密码 :&nbsp;</span>

            <input type="text" id="pwFixed" placeholder="6-20位字母或者数字">

            <br>

            <br>

            <span><b></b>确认密码 :&nbsp;</span>

            <input type="password" id="okFixed">

            <span id="okWarning" class="warnning"></span>

            <br>

            <br>

            <button id="register">注册</button>

        </div>

        <ul>

            <li id="green"></li>

            <li id="orange"></li>

            <li id="red"></li>

        </ul>

    </div>


    <script>

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

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


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

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

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

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


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

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

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

        //用户名验证表示1代表成功其他代表错误

        var nf = 0;

        //密码再次验证表示1代表成功其他代表错误

        var cp = 0;

        //用户名验证

        nameFixed.onfocus = function () {


            userWarning.style.fontSize = 10 + 'px';


            var time = setInterval(function () {

                if (/^[a-zA-Z]{1}[a-zA-Z\d\_]{5,29}$/.test(nameFixed.value)) {

                    userWarning.style.color = 'green';

                    userWarning.innerText = '输入正确';

                    nf = 1;

                    clearInterval(time);

                } else {

                    userWarning.style.color = 'orange';

                    userWarning.innerText = '6-30位字母丶数字或_,以字母开头。';

                    nf = -1;

                }

            }, 1000)

        }


        //密码验证

        pwFixed.onblur = function () {

            setInterval(function () {

                if (/^\d{6}$/.test(pwFixed.value) || /^[a-z]{6}$/.test(pwFixed.value) || /^[A-Z]{6}$/.test(pwFixed.value)) {

                    red.style.backgroundColor = 'red';


                } else if (/^[a-zA-Z]{6,30}$/.exec(pwFixed.value) || /^[a-z0-9]{6,30}$/.exec(pwFixed.value) || /^[0-9A-Z]{6,30}$/.exec(pwFixed.value)) {

                    red.style.backgroundColor = 'red';

                    orange.style.backgroundColor = 'orange';


                } else if (/^[a-zA-Z0-9]{6,30}$/.exec(pwFixed.value)) {

                    red.style.backgroundColor = 'red';

                    orange.style.backgroundColor = 'orange';

                    green.style.backgroundColor = 'green';

                } else if (pwFixed.value !== '') {

                    alert('输入有误');

                    pwFixed.value = '';

                }

            }, 1000)


        }

        //密码确认



        okFixed.onblur = function () {

            okFixed.style.borderColor = ''

            if (okFixed.value == pwFixed.value && okFixed.value !== '') {

                okWarning.style.color = 'green'

                okWarning.innerText = '输入一致'

                cp = 1;

                console.log(cp);


            } else {

                okWarning.style.color = 'red'

                okWarning.innerText = '输入不一致,请从新输入'

                okFixed.style.borderColor = 'red'

                cp = -1;


            }

        }

        console.log(cp);


        //注册按钮   上面已经验证过了 此处不再做验证

        register.onclick = function () {

            if (cp == 1 && nf == 1) {

                alert('信息输入正确!')

            } else {

                alert('输入有误,请检查!')

            }

        }




    </script>

</body>


</html>


写回答

1回答

好帮手慕然然

2021-04-10

同学你好,代码中关于登录密码的验证,实现效果存在如下问题:

1、密码框中无法连续输入问题:当第一次输入密码后,密码框失去焦点时触发了onblur事件,启动了事件函数中的定时器,当后面再次输入密码时就会不断弹出“输入有误”提示框,如图

http://img.mukewang.com/climg/607578250913dcbd09600472.jpg

2、密码强度验证效果实现不准确,当密码框中的密码不符合相应的强度要求时,密码框强度样式未相应改变,如图

http://img.mukewang.com/climg/6075785e091a570b08440078.jpg

建议参考如下代码:

http://img.mukewang.com/climg/607149b6090d86ab09350759.jpg

http://img.mukewang.com/climg/60714a9909405d5906390299.jpg

祝学习愉快!

0

0 学习 · 15276 问题

查看课程