我正在阅读 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");
}
当您单击输入框以外的
anything时(例如单击另一个,或单击某个内容的链接),会触发
onBlur
事件。基本上,如果您无法在输入字段中输入内容,则它没有焦点。
至于为什么它不起作用,请参阅@Teja Kantamneni 的答案,这应该使它起作用。
您可能会收到错误,因为函数声明后缺少括号()。即使您有一个没有参数的函数,也必须在函数名称后面包含括号 ()。
焦点是当表单元素接收控制时,因此您可以在其中键入或更改下拉列表的选项。与 onBlur 一样,也有一个 onFocus 事件。
焦点通常设置在页面加载上。因此,当页面加载时,用户不必点击他们需要填写的第一个字段。
在此示例中,您可以:
Javascript
function setFocus(){
document.getElementById('cage').focus();
}
HTML
<body onLoad="setFocus();">
就其价值而言,我看到你在写 onBlur,而实际上它是 onblur。