按键事件在Internet Explorer中不起作用。

3

我有以下代码:

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

这个输入框是一个 jQuery 日期选择器.. (http://jqueryui.com/datepicker/)

我的 JS 代码如下:

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

我尝试了keypress、keydown和keyup,但在IE中都无效。

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

我也尝试了jquery快捷键插件(https://github.com/jeresig/jquery.hotkeys/blob/master/jquery.hotkeys.js),但是没有成功 :(

我只想捕获回车事件..

有什么帮助吗?

Felipe


奇怪...在IE10上甚至连keydown都不能用 - http://jsfiddle.net/eNjWQ/ - Rikard
你正在尝试使用哪个版本的IE和哪个版本的jQuery? - Jonathan Lonowski
这个例子对我不起作用,Rikard。但是我的IE版本是9.0.8112,而且我无法更新到10 :( - fdam
1
它在Chrome和IE 9中对我有效。奇怪的是,@Rikard的fiddle在IE中对我无效,但如果我创建一个测试文件,它就有效了。 - Jay Claiton
如果您将jQuery版本更改为1.9.1,它就可以工作了@JayClaiton,这很奇怪,因为这是我的项目版本..我将尝试更新到1.10.1,但我不知道这个更新是否会破坏其他组件。至少进行测试。 - fdam
显示剩余3条评论
2个回答

0
如果在初始加载页面时元素不存在,则事件可能未绑定到按钮。不确定为什么在其他浏览器中可以工作。可以尝试这个方法,看看是否有帮助。
$(document).on('keypress', '#myId', function() {
 // ....
});

如果您正在使用旧版本的jQuery,则需要使用.live()。

http://jsfiddle.net/gaUeY/ 上的jquery 1.9.1在IE 9上运行正常,但在我的项目中不起作用。无论如何,可能是其他插件的问题。@RickyS - fdam

0

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

IE浏览器无法识别在此输入框中的点击事件,但如果我使用Tab键导航到该字段,则可以正常工作。 我采用了一种解决方法,手动设置焦点,现在它可以正常工作了。

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

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

att


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接