jQuery Event Keypress:哪个键被按下了?

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

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

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

[更新]

即使我发现(或更好:一个)回答我自己,似乎有一些变化的空间;)

keyCodewhich一个之间有区别 - 特别是如果我只是在寻找不会是unicode关键字的ENTER?

做一些浏览器提供一个属性,其他浏览器提供另一个?


其实这是更好的:

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

尝试这个

$('#searchbox input').bind('keypress', function(e) {
    if(e.keyCode==13){
        // Enter pressed... do anything here...
    }
});

如果您使用的是jQuery UI,那么您需要翻译常用的键码。 在ui / ui / ui.core.js中:

$.ui.keyCode = { 
    ...
    ENTER: 13, 
    ...
};

在测试/模拟/ jquery.simulate.js中也有一些翻译,但我在核心JS库中找不到任何翻译。 请注意,我只是简单地说明了消息来源。 也许还有其他方法可以摆脱这些神奇的数字。

你也可以使用String.charCodeAt和.fromCharCode:

>>> String.charCodeAt('r') == 13
true
>>> String.fromCharCode(13) == 'r'
true
链接地址: http://www.djcxy.com/p/51431.html

上一篇: jQuery Event Keypress: Which key was pressed?

下一篇: How to correctly unregister an event handler