请老师帮忙检查!

请老师帮忙检查!

<!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 id="ipt" type="text"> <span id="sp"></span>

<script type="text/javascript">

    var ipt=document.getElementById("ipt"),

        sp=document.getElementById("sp");

    ipt.onfocus=function(){

        sp.innerHTML="请输入您的姓名";

    };

    ipt.onblur=function(){

        var val=ipt.value;

        console.log(val)

        if(val==""){

            sp.innerHTML="用户名不能为空";

            ipt.className="red";

        }else{

            sp.innerHTML="";

            ipt.removeAttribute("class");

        }

    }

</script>

</body>

</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕言 2019-10-12 18:41:12

同学你好,根据效果图来讲,当输入框失去焦点时,如果输入了内容,提示文字再消失哦。

建议:去掉onkeydown事件。

如果帮助到了你,欢迎采纳~祝学习愉快~


提问者 QiuBaa 2019-10-12 17:24:07

<!DOCTYPE html>
<html>
<head lang="en">
   <meta charset="UTF-8">
   <title>onblur和onfocus</title>
   <style type="text/css"> .red {
       border: 1px solid red;
}

   input {
       outline: none;
} </style>
</head>
<body> 姓名:<input id="ipt" type="text"> <span id="sp"></span>
<script type="text/javascript"> var ipt = document.getElementById("ipt"), sp = document.getElementById("sp");
ipt.onfocus = function () {
   ipt.removeAttribute("class");
var len = ipt.value.length;
if(len==0){
       sp.innerHTML = "请输入您的姓名";
}
   ipt.onkeydown = function () {
       var len = ipt.value.length;
if (len == 0) {
           sp.innerHTML = "请输入您的姓名";
} else {
           sp.innerHTML = "";
}
   }
};
ipt.onblur = function () {
   var val = ipt.value;
console.log(val);
if (val == "") {
       sp.innerHTML = "用户名不能为空";
ipt.className = "red";
} else {
       sp.innerHTML = "";
ipt.removeAttribute("class");
}
} </script>
</body>
</html>

好帮手慕言 2019-10-12 15:07:10

同学你好,测试同学提供的代码,有以下问题

1、在谷歌浏览器下测试,聚焦没有输入内容,失去焦点后再次聚焦, 输入框红色和蓝色重合了,如图:

http://img1.sycdn.imooc.com//climg/5da17a4f0976a15b04070089.jpg

建议:聚焦时清除类名

2、聚焦时当输入框里面有内容时,还是出现了提示“请输入您的姓名”。(正常是不显示提示的)

http://img1.sycdn.imooc.com//climg/5da17ab3090d515f05100111.jpg

建议:聚焦时判断输入框是否有内容。

代码参考:

http://img1.sycdn.imooc.com//climg/5da17b8909b2770b05960204.jpg

祝学习愉快~

  • 提问者 QiuBaa #1
    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>onblur和onfocus</title> <style type="text/css"> .red{ border:1px solid red; } input{ outline: none; } </style> </head> <body> 姓名:<input id="ipt" type="text"> <span id="sp"></span> <script type="text/javascript"> var ipt=document.getElementById("ipt"), sp=document.getElementById("sp"); ipt.onfocus=function(){ ipt.removeAttribute("class"); sp.innerHTML="请输入您的姓名"; ipt.onkeydown=function () { var len=ipt.value.length; if(len==0){ sp.innerHTML="请输入您的姓名"; }else { sp.innerHTML=""; } } }; ipt.onblur=function(){ var val=ipt.value; console.log(val); if(val==""){ sp.innerHTML="用户名不能为空"; ipt.className="red"; }else{ sp.innerHTML=""; ipt.removeAttribute("class"); } } </script> </body> </html>
    2019-10-12 17:19:38
  • 提问者 QiuBaa #2
    不好意思代码有误,我重新发在新的回答里面了,麻烦老师帮我检查下哦!
    2019-10-12 17:23:53
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师