IE按键事件未触发Enter键

时间:2018-01-16 19:38:15

标签: javascript jquery internet-explorer keypress enter

我正在尝试创建一个允许用户按Enter键以进入大多数屏幕的UI。这在大多数浏览器中都很有效,但在IE中似乎失败了。

我设置了一个JS小提琴,显示了行为 - https://jsfiddle.net/fat9qy40/2/。似乎必须存在隐藏的某种形式元素。在我的实际用例中,我弹出一个带有一些指令的div,并且希望用户能够按Enter键来解除它 - 在该div下面仍然有一个底层表单。

HTML:

<html>
<head>
</head>
<body>
  <button>
  Fake button
  </button>
  <div style="z-index:100;position:absolute;top:0;left:0;border:1px solid black;background-color:green;height:50px;padding:10px">
  Press enter to see an alert (unless you're using IE!)
  </div>
</body>
</html>

JS:

$(document).on('keypress', function(e){
    alert(e.which)
})

在Chrome中,如果我点击右下角的空格然后按回车键,我会弹出一个“13”的弹出窗口,这就是我所期望的。在IE 11中,如果我做同样的事情,没有任何反应。其他按键可以正确地触发按键事件;例如,如果我点击F,我会收到一条“102”的警告。

有人有任何变通办法或建议吗?谢谢!

1 个答案:

答案 0 :(得分:0)

epascarello钉了它 - 谢谢!奇怪的是,我曾经想过要自己尝试keydown,但是它遇到了与按键相同的错误。

另一方面,keyup工作得很好,对于我的用例,我认为它和keypress一样好。