Javascript onBlur事件在html文件中出现错误



我正在阅读Javascript教程,我正在制作一个带有Javascript函数的html文件和一个框,事实是,警报不显示什么进入文本字段,我做错了什么?,这是我的代码。我不是很清楚,它是如何处理onBlur事件的,有人能解释一下吗?在教程中,他们给出的唯一解释是"失去焦点控制",我不知道焦点这个词是什么意思,也不知道没有输入按钮的文本框是如何处理的。

<html>
    <head>
        <script>
            function show ()
            {
            var age= parseInt (cage.value);
                if (age<=18)
            alert("access denied");
                else
            alert("Welcome");
            }
        </script>
        <title> New Page I </title>
    </head> 
    <body>  
        Age: 
        <input type="text" id "cage" name="cage" size="10"
    onBlur=show();> 
    </body>
</html>

onBlur事件在当前控件失去焦点时触发。当一个控件有焦点时,意味着它当前处于"选中"状态,可能导致它失去焦点的事情包括点击另一个控件或按tab键。

你的方法不能正常工作的原因是因为它有一个小错误。试试这个:

<html> 
    <head> 
        <script> 
            function show(el) 
            { 
              var age = parseInt(el.value); 
              if (age<=18) 
                alert("access denied"); 
              else 
                alert("Welcome"); 
            } 
        </script> 
        <title> New Page I </title> 
    </head>  
    <body>   
        Age:  
        <input type="text" id="cage" name="cage" size="10" onBlur="show(this);" />  
     </body> 
</html> 

您必须在函数名称后使用()并首先查找元素,然后从中检索值。这里是示例代码。(应工作,未测试)

 function show(){
       var age = document.getElementById('cage').value;
       if (parseInt(age, 10)<=18)
            alert("access denied");
        else
            alert("Welcome");
    }

onBlur事件是触发当你点击任何以外的输入框(例如点击另一个,或点击链接到某物)。基本上,如果你不能在输入字段中输入,它就没有焦点

至于为什么它不起作用,请参阅@Teja Kantamneni的回答,这应该会使它起作用。

你可能会得到一个错误,因为你错过了括号()后的函数声明。即使你有一个没有参数的函数,也必须在函数名后面加上圆括号

Focus是表单元素接受控制的时候,所以你可以输入它或者改变下拉菜单的选项。和onBlur一样,这里也有一个onFocus事件。

焦点通常设置在页面加载上。因此,当页面加载时,用户不必去点击他们需要填写的第一个字段。

在这个例子中你可以使用:

Javascript 
function setFocus(){
   document.getElementById('cage').focus();
}
HTML
<body onLoad="setFocus();">  

相关内容

  • 没有找到相关文章

最新更新