在<body>里为什么也要加window.onload才能触发?

在<body>里为什么也要加window.onload才能触发?

<!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">
    window.onload=function(){
        var a=document.getElementsByTagName("input")[0],
            b=document.getElementsByTagName("span")[0];
        a.onfocus=function(){
            var aa=this.value;
          if (aa.length==0){
            b.innerHTML="请输入您的姓名";
            this.className="";
          }else{
            b.innerHTML="";
          };
        
        };
        a.onblur=function(){
          var aa=this.value;
          if (aa.length==0) {
            b.innerHTML="用户名不能为空";
            this.className="red";
          }else{
            b.innerHTML="";
            this.className="";
          };
        };
    };
  </script>
</body>
</html>

这里我试着不加window.onload,但是JS不响应,这是为什么?

正在回答

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

1回答

同学你好,经过测试,body里面不添加window.onload也是能够触发的哦。

效果图:

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

代码:

<body>
    姓名:<input type="text"> <span></span>
    <script type="text/javascript">
    var a = document.getElementsByTagName("input")[0],
        b = document.getElementsByTagName("span")[0];
    a.onfocus = function() {
        var aa = this.value;
        if (aa.length == 0) {
            b.innerHTML = "请输入您的姓名";
            this.className = "";
        } else {
            b.innerHTML = "";
        };

    };
    a.onblur = function() {
        var aa = this.value;
        if (aa.length == 0) {
            b.innerHTML = "用户名不能为空";
            this.className = "red";
        } else {
            b.innerHTML = "";
            this.className = "";
        };
    };
    </script>
</body>

可以测试一下,如果帮助到了你,欢迎采纳。

祝学习愉快!

  • 谢谢,我发现为什么了 当时删了window.onload,但是忘了删function了
    2019-02-22 12:49:25
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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