我正在阅读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();">