[英]onchange isn't working
我正在通过O'Reilly媒体出版的Head First系列丛书学习JavaScript,并且我刚刚进入了必须使用onchange
事件的一章。
我正在使用Safari / OS X Lion,Firefox,Chrome,Opera和IE / Windows进行测试,但是得到了相同的结果。
鉴于此代码:
<html>
<head>
<title>onChange Test</title>
<script type="text/javascript">
function itWorks(){
alert("it works!");
}
</script>
</head>
<body>
<form>
<input type="text" onchange="itWorks();" />
<input type="text" onchange="itWorks();" />
</form>
</body>
<html>
说onchange
事件在我们从一个字段更改为另一个字段时是否起作用,是否仅通过单击或使用TAB键将其激活是正确的吗?
onchange事件在以下时间触发:
失去焦点的方式无关紧要,也不必将焦点移到另一个字段(可以将链接聚焦,或者文档中没有任何内容,等等)。
“我们通过单击或使用TAB键从一个字段更改为另一个字段”-
多数民众赞成在模糊。
每当您更改输入值时,您编码的事件都会触发,然后离开该字段。 EG:在字段中输入内容,然后按TAB键。
您的示例代码对我来说是预期的。
您描述的行为是关注焦点。 onchange在输入值更改时执行。 如果您在字段中键入内容,它应该运行。
“请澄清一下,只要我们通过单击或使用TAB键将其从一个字段更改为另一个字段,onchange事件就会起作用,对吗?”
是的 - 只要价值发生变化
我不确定问题是什么-您的代码有效! 我在jsfiddle.net上进行了测试 -非常适合学习/测试javascript。
(你应该关闭你的html标签顺便说一下)......
这就是HTML5草案规范所说的 :
不重点的步骤如下:
如果元素是一个输入元素,并且更改事件适用于该元素,并且该元素没有已定义的激活行为,并且该用户已更改该元素的值或其所选文件的列表,而控件是在未提交的情况下进行的更改,然后触发一个简单事件,在该元素上冒泡名为change的事件。
使元素散焦。
在元素上触发一个名为blur的简单事件。
请注意, 更改也可以在其他时间触发。 规范还说 :
...每当用户提交对元素值或所选文件列表的更改时,用户代理必须对任务进行排队,以触发一个简单的事件,该事件将命名的气泡更改为输入元素。
继续提供几个“做出改变”的例子
具有提交操作的用户界面的示例将是文件上载控件,其由单个按钮组成,其打开文件选择对话框:当对话框关闭时,如果文件选择因此而改变,则用户具有提交了一个新的文件选择。
具有提交操作的用户界面的另一个示例是Date控件,它允许从下拉日历中进行基于文本的用户输入和用户选择:虽然文本输入可能没有显式提交步骤,但从drop中选择日期日历,然后关闭下拉菜单将是一个提交操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.