Jquery IE10不响应输入元素更改
我这里有一个JSFIDLE——带有一个简单的输入和一个更改处理程序: HTML 当您在字段中输入一些文本并按enter键时,console.log消息会按预期显示在Firefox、Chrome和Safari上,但不会显示在IE上(我运行的是IE10)。有人知道为什么IE这么难吗 谢谢Jquery IE10不响应输入元素更改,jquery,internet-explorer,Jquery,Internet Explorer,我这里有一个JSFIDLE——带有一个简单的输入和一个更改处理程序: HTML 当您在字段中输入一些文本并按enter键时,console.log消息会按预期显示在Firefox、Chrome和Safari上,但不会显示在IE上(我运行的是IE10)。有人知道为什么IE这么难吗 谢谢$(函数(){ $('input#helpQ')。更改(函数(e){ console.log(“helpQ已更改”) }) //帮助IE10,因为它在字段失去焦点之前不会触发更改。 $('input#helpQ').
$(函数(){
$('input#helpQ')。更改(函数(e){
console.log(“helpQ已更改”)
})
//帮助IE10,因为它在字段失去焦点之前不会触发更改。
$('input#helpQ').keydown(函数(e){
如果(e.which==13)$(this).change()
})
})
请注意,在某些浏览器中,
console.log()
在控制台未打开时引发异常。传统上,更改事件发生在元素失去焦点时,在您的情况下,按Enter键不会更改焦点。直到我读到你的问题,我才意识到按Enter键会在任何浏览器中触发它(至少,当问题中的文本输入不是Enter可以提交的表单时不会)。是的,你已经得到了答案。在这种情况下,IE做了正确的事情,没有将Enter识别为onchange触发器,其他人都太宽容了。要在IE中实现这一点,我需要捕获keydown,检查它是否为13,如果是,则读取字段的值。谢谢
<input id="helpQ" type="text">
$(function() {
$('input#helpQ').change(function(e) {
console.log("helpQ changed");
});
});