使用Javascript onBlur事件的html文件出错

时间:2011-08-25 12:35:54

标签: javascript html textbox onblur

我正在阅读Javascript教程,我正在制作一个带有javascript函数的html文件和一个框,事实是警报没有显示文本字段中的内容,我做错了什么?,这是我的代码。我不是很清楚,它如何处理事件onBlur,有人解释更多关于它?在教程中,他们给出的唯一解释是“失去焦点控制”,我不知道它们的意思是焦点这个词,或者它是如何处理文本框的,而不是输入botton。

<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>

4 个答案:

答案 0 :(得分:1)

你必须在函数名之后使用()并首先查找元素,然后从中检索它。这里是示例代码..(应该工作,不测试)

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

答案 1 :(得分:1)

当您点击输入框以外的任何时,会触发onBlur事件(例如,点击另一个,或点击指向某个内容的链接)。基本上,如果您无法输入输入字段,则它没有焦点

至于为什么它不起作用,请参阅@Teja Kantamneni的答案,这应该可以使它发挥作用。

答案 2 :(得分:1)

您可能会收到错误,因为您在函数声明后缺少括号()。即使你有一个没有参数的函数,也必须在函数名后加上括号()。

焦点是表单元素接收控件时,您可以键入它或更改下拉列表的选项。就像onBlur一样,还有一个onFocus事件。

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

在此示例中,您可以:

Javascript 

function setFocus(){
   document.getElementById('cage').focus();
}

HTML

<body onLoad="setFocus();">  

答案 3 :(得分:1)

当前控件失去焦点时会触发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>