使用jQuery,我如何找到哪个键被按下时,我绑定到按键事件?

$('#searchbox input').bind('keypress', function(e) {});

我想在按下ENTER键时触发提交。

(更新)

尽管我自己找到了(或者更好的:一个)答案,但似乎还有变化的空间;)

keyCode和它之间有区别吗?特别是如果我只找ENTER,它永远不会是unicode键?

是否有些浏览器提供一种属性,而其他浏览器提供另一种?


当前回答

我将用e.preventDefault();来补充解决方案代码。 在输入字段的情况下,我们不参加提交的形式进入按下

var code = (e.keyCode ? e.keyCode : e.which);
 if(code == 13) { //Enter keycode
   e.preventDefault();
   //Do something
 }

其他回答

好吧,我瞎了:

e.which

将包含键的ASCII码。

参见https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/which

$(document).bind('keypress', function (e) {
    console.log(e.which);  //or alert(e.which);

});

你应该有firbug来查看控制台的结果

其实这样更好:

 var code = e.keyCode || e.which;
 if(code == 13) { //Enter keycode
   //Do something
 }

试试这个:

jQuery('#myInput').keypress(function(e) {
    code = e.keyCode ? e.keyCode : e.which;
    if(code.toString() == 13) {
        alert('You pressed enter!');
    }
});

根据Kilian的回答:

如果只输入按键很重要:

<form action="javascript:alert('Enter');">
<input type=text value="press enter">
</form>