Keypress事件在Internet Explorer中不起作用

时间:2013-09-24 18:55:49

标签: javascript jquery internet-explorer events hotkeys

我有以下代码:

<input class="any" type="text" id="myId" name="myName" />

此输入是一个jquery datepicker ..(http://jqueryui.com/datepicker/

我的JS如下:

$('#myId').keypress(function(evt) {
   //codes
});

我试过按键,keydown和keyup ..都不能在IE中工作..

可能是因为jquery日期选择器插件?

我也尝试过使用jquery热键插件(https://github.com/jeresig/jquery.hotkeys/blob/master/jquery.hotkeys.js

但是,没有成功:(

我只想捕捉输入事件..

任何帮助?

菲利普

2 个答案:

答案 0 :(得分:0)

如果初始加载时页面上不存在该元素,则该事件可能不会绑定到该按钮。不知道为什么它在其他浏览器中有效。

可能会尝试这个看看是否有帮助

$(document).on('keypress', '#myId', function() {
 // ....
});

如果你使用旧版本的jQuery,那么你需要使用.live()。

答案 1 :(得分:0)

解决:http://jsfiddle.net/MJWUw/

IE只是单击此输入时无法识别键事件,但如果我导航到带有制表空间的字段,则可以正常工作。 我做了一个解决方法来解决这个问题,手动设置焦点,它现在正在工作。

$("#myId").click(function(evt){$(this).focus();});

$('#myId').keyup(function(evt) {
   alert('working!')
});

ATT