老师,这个效果实现不了,麻烦帮忙看下问题在哪里

来源:4-11 编程练习

html小小白

2022-02-10 16:09:11

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>onblur和onfocus</title>

    <style type="text/css">

        .red{

     border:1px solid red;

     }

    </style>

</head>

<body>

姓名:<input type="text"> <span></span>

    <script type="text/javascript">

        // 补充代码

        var input = document.getElementsByTagName('input')[0];

        var span = document.getElementsByTagName('span')[0];

        input.onfocus = function () {

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

                span.innerHTML='请输入您的姓名';

            }

};

        input.onblur=function() {

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

                span.innerHTML='用户名不能为空';

                this.className='red';

            }else {

                span.innerHTML='';

                this.className='blank';

            }

        };

    </script>

</body>

</html>


写回答

1回答

好帮手慕久久

2022-02-10

同学你好,代码可以实现效果:

https://img.mukewang.com/climg/6204c9130a157e4409810150.jpg

需要注意的是,先不输入内容然后失去焦点,再获取焦点时,input的边框会叠加红色(页面放大可以看得清楚些):

https://img.mukewang.com/climg/6204c96609059fa410570425.jpg

这是因为之前设置的红色边框没有去掉。

建议在获取焦点事件中,手动将之前可能存在的红色边框去掉:

https://img.mukewang.com/climg/6204c99d09df706b09240546.jpg

祝学习愉快!

0

前端工程师

前端入门如同写字,如果你不知道从哪开始,那就选择前端(含Vue3.x,React17,TS)

20327 学习 · 17877 问题

查看课程