使用 Javascript onBlur 事件时 html 文件中出现错误

问题描述 投票:0回答:5

我正在阅读 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>
javascript html textbox onblur
5个回答
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> 

1
投票

您必须在函数名称后使用

()
并首先查找元素,然后从中检索值..这是示例代码..(应该有效,未经测试)

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

1
投票

当您单击输入框以外的

anything
时(例如单击另一个,或单击某个内容的链接),会触发 onBlur 事件。基本上,如果您无法在输入字段中输入内容,则它没有焦点

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


1
投票

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

焦点是当表单元素接收控制时,因此您可以在其中键入或更改下拉列表的选项。与 onBlur 一样,也有一个 onFocus 事件。

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

在此示例中,您可以:

Javascript 

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

HTML

<body onLoad="setFocus();">  

0
投票

就其价值而言,我看到你在写 onBlur,而实际上它是 onblur。

© www.soinside.com 2019 - 2024. All rights reserved.