【发布时间】:2013-09-23 21:52:09
【问题描述】:
我在这里有一个 jsfiddle - http://jsfiddle.net/w9XLn/1/ - 带有一个简单的输入和一个更改处理程序:
HTML
<input id="helpQ" type="text">
jQuery
$(function() {
$('input#helpQ').change(function(e) {
console.log("helpQ changed");
});
});
当您在字段中输入一些文本并按 Enter 键时,console.log 消息会按预期出现,适用于 Firefox、Chrome 和 Safari,但不适用于 IE(我正在运行 IE10)。有谁知道为什么 IE 这么难?
谢谢
【问题讨论】:
-
传统上,当元素失去焦点时会发生更改事件,在您的情况下,按 Enter 不会更改焦点。直到我读到你的问题,我才知道按 Enter 会在任何浏览器中触发它(至少,当有问题的文本输入不是 Enter 提交的表单时)。
-
是的,你已经得到了答案。在这种情况下,IE 没有将 Enter 识别为 onchange 触发器,而其他所有人都过于宽容,这是正确的做法。为了在 IE 中进行这项工作,我需要捕获 keydown,检查它是否为 13,如果是,则读取该字段的值。谢谢。