【问题标题】:Keypress event doesn't work in internet explorer按键事件在 Internet Explorer 中不起作用
【发布时间】:2013-09-30 03:37:05
【问题描述】:

我有以下代码:

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

这个输入是一个 jquery datepicker.. (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)

但是,没有成功:(

我只想捕获输入事件..

有什么帮助吗?

费利佩

【问题讨论】:

  • 在其他浏览器中也可以使用?
  • 奇怪...甚至 keydown 在 IE10 上都没有为我工作 - jsfiddle.net/eNjWQ
  • 你在用哪个版本的 IE 和哪个版本的 jQuery?
  • 也许这可以帮助SO Link
  • 它适用于我,在 Chrome 和 IE 9 中。奇怪的是,@Rikard 的小提琴在 IE 中对我不起作用,但如果我创建一个测试文件,它会起作用。

标签: javascript jquery internet-explorer events hotkeys


【解决方案1】:

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

可以试试这个看看有没有帮助

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

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

【讨论】:

  • jsfiddle.net/gaUeY IE 9 上的 jquery 1.9.1 可以工作.. 但在我的项目中没有.. 无论如何,应该是其他插件的其他问题。 @RickyS
【解决方案2】:

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

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

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

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

att

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    相关资源
    最近更新 更多