删除密码颜色改变

来源:2-25 项目作业

Javed

2021-03-28 13:00:24

问题描述:

想实现删除密码颜色会回退灰色的效果,但是不知道怎么做。麻烦老师给个提示。
`

Document
*用  户 名:

*登录密码:
            <span id="pwdLow" class="pwdflag"></span>
            <span id="pwdMid" class="pwdflag"></span>
            <span id="pwdHit" class="pwdflag"></span>
            <span id="pwdinfo"></span>
            <p></p>
            <span class="spanflag">*</span>确认密码:
            <input type="text" name="" id="pwds" placeholder="再次输入您的登录密码">
            <span id="pwdWarning"></span>
            <p></p>
            <input type="submit" name="注册" id="btn">
        </form>
    </div>
</div>
<script>
    //获取文本框和按钮元素
    var username = document.getElementById('username');
    var pwd = document.getElementById('pwd');
    var pwds = document.getElementById('pwds');
    var btn = document.getElementById('btn');
    //获取校验提示
    var usernameWarning = document.getElementById('usernameWarning');
    var pwdWarning = document.getElementById('pwdWarning');
    //获取密码强度标识
    var pwditem = document.getElementsByClassName('pwdflag');

    //用户名失去焦点事件
    username.onblur = function() {
        if (!username.value.trim()) {
            usernameWarning.innerText = '用户名不能为空';
            usernameWarning.style.color = 'red';
        } else {
            checkName();
        }
    };
    //密码失去焦点事件
    pwd.onblur = function() {
        // 如果输入内容的不满足条件时,输入框下面给出提示内容为:6-20位字母或数字,且字体颜色变为红色。
        if (!pwd.value) {
            pwdinfo.innerText = '密码不能为空';
            pwdinfo.style.color = 'red';
            for (var i = 0; i < pwditem.length; i++) {
                pwditem[i].style.backgroundColor = 'gainsboro';
            }
        } else if (pwd.value.length < 6) {
            pwdinfo.innerText = '密码长度不为6';
            pwdinfo.style.color = 'red';
            for (var i = 0; i < pwditem.length; i++) {
                pwditem[i].style.backgroundColor = 'gainsboro';
            }
        } else {
            pwdinfo.innerText = '';

        }
    };
    //键盘按下
    username.onkeypress = function() {
        console.log(username.value);
        console.log('用户名长度' + username.value.length);
    }
    pwd.onkeypress = function() {
        checkPwd();
        console.log(pwd.value);
    };


    //确认密码失去焦点事件
    pwds.onblur = function() {

    };

    //用户名检测
    function checkName() {

        //用户名输入框,正确的条件是:6-30位字母、数字或_, 以字母开头
        // 如果输入内容的不满足条件时,输入框后面的提示内容为。6-30位字母、数字或’_’,字母开头,且字体颜色变为红色。
        //如果输入的满足条件,输入框后面的提示内容为:“用户名输入正确”,且字体颜色变成绿色。
        if (/^[a-zA-Z]{1}\w{5,29}$/.test(username.value)) {
            console.log(username.value);
            usernameWarning.innerText = '用户名输入正确';
            usernameWarning.style.color = 'green';
        } else {
            usernameWarning.innerText = '6-30位字母、数字或’_’,字母开头';
            usernameWarning.style.color = 'red';
        }
    }
    //密码检测
    function checkPwd() {
        //密码输入框,正确的条件是:6-20位字母或数字组成
        //如果输入的密码内容是纯数字、纯小写字母或者纯大写字母,密码强度为低,只有第一块变为红色。
        //如果是两种类型的结合,那么密码强度为一般,第二块变为橘色。
        //如果是三种类型的结合,那么密码强度为高,第三块变为绿色。
        if (/^[A-Za-z0-9]{6,20}$/.test(pwd.value)) {
            if ((/^[a-z]+$/.test(pwd.value)) || (/^[A-Z]+$/.test(pwd.value)) || (/^[0-9]+$/.test(pwd.value))) {
                pwditem[0].style.backgroundColor = 'red';
            } else if ((/^[a-z0-9]+$/.test(pwd.value)) || (/^[A-Z0-9]+$/.test(pwd.value)) || (/^[a-zA-Z]+$/.test(pwd.value))) {
                pwditem[0].style.backgroundColor = 'red';
                pwditem[1].style.backgroundColor = 'orange';
            } else {
                pwditem[0].style.backgroundColor = 'red';
                pwditem[1].style.backgroundColor = 'orange';
                pwditem[2].style.backgroundColor = 'green';
            }
        }
    };
</script>
`
写回答

2回答

好帮手慕慕子

2021-03-28

同学你好,对于你的问题解答如下:

1、判断密码的强度时,在对应强度下给每个方块都设置对应的颜色,这样在删除密码时,就会对应改变方块的颜色了。示例:

http://img.mukewang.com/climg/60601e0f09fcc7f911100664.jpg

然后直接在鼠标失焦事件中调用该方法就可以了。

http://img.mukewang.com/climg/60601e35094ab78210810634.jpg

http://img.mukewang.com/climg/60601e3b0990f5f705290131.jpg

2、​type类型为submit的按钮,提交表单后,会自动刷新页面,清空表单中输入的值。

祝学习愉快~

1

Javed

提问者

2021-03-28

还有我想问下,提价表单后如何清空表单里面输入的值

0

0 学习 · 15276 问题

查看课程