使用 jQuery,如何确定绑定到 keypress 事件时按下了哪个键?
$('#searchbox input').bind('keypress', function(e) {});
我想在按ENTER 时触发提交。
[更新]
即使我找到了(或者更好:一个)自己回答,似乎还有一些变化的余地;)
有没有之间的差异keyCode
和which
- 尤其是如果我只是在寻找ENTER,这将永远是一个 unicode 关键?
某些浏览器是否提供一种属性,而其他浏览器提供另一种属性?
实际上,这样更好:
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,
...
};
在 tests / simulate / jquery.simulate.js 中也有一些翻译,但是我在核心 JS 库中找不到任何翻译。提醒您,我只是参考了来源。也许还有其他方法可以摆脱这些魔术数字。
您还可以使用 String.charCodeAt 和. fromCharCode:
>>> String.charCodeAt('\r') == 13
true
>>> String.fromCharCode(13) == '\r'
true