Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery IE10不响应输入元素更改_Jquery_Internet Explorer - Fatal编程技术网

Jquery IE10不响应输入元素更改

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').

我这里有一个JSFIDLE——带有一个简单的输入和一个更改处理程序:

HTML

当您在字段中输入一些文本并按enter键时,console.log消息会按预期显示在Firefox、Chrome和Safari上,但不会显示在IE上(我运行的是IE10)。有人知道为什么IE这么难吗

谢谢

$(函数(){
$('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");
    });
});