使用jQuery,我如何找到哪个键被按下时,我绑定到按键事件?
$('#searchbox input').bind('keypress', function(e) {});
我想在按下ENTER键时触发提交。
(更新)
尽管我自己找到了(或者更好的:一个)答案,但似乎还有变化的空间;)
keyCode和它之间有区别吗?特别是如果我只找ENTER,它永远不会是unicode键?
是否有些浏览器提供一种属性,而其他浏览器提供另一种?
使用jQuery,我如何找到哪个键被按下时,我绑定到按键事件?
$('#searchbox input').bind('keypress', function(e) {});
我想在按下ENTER键时触发提交。
(更新)
尽管我自己找到了(或者更好的:一个)答案,但似乎还有变化的空间;)
keyCode和它之间有区别吗?特别是如果我只找ENTER,它永远不会是unicode键?
是否有些浏览器提供一种属性,而其他浏览器提供另一种?
当前回答
试试这个:
jQuery('#myInput').keypress(function(e) {
code = e.keyCode ? e.keyCode : e.which;
if(code.toString() == 13) {
alert('You pressed enter!');
}
});
其他回答
我做的最简单的方法是:
$("#element").keydown(function(event) {
if (event.keyCode == 13) {
localiza_cep(this.value);
}
});
如果你正在使用jQuery UI,你有翻译的公共键代码。在ui / ui / ui.core.js:
$.ui.keyCode = {
...
ENTER: 13,
...
};
在tests/simulate/jquery. simulation . JS中也有一些翻译,但我在核心JS库中找不到任何翻译。注意,我只是核对了一下资料。也许有其他方法可以摆脱这些神奇的数字。
你也可以使用String。charCodeAt和。fromcharcode:
>>> String.charCodeAt('\r') == 13
true
>>> String.fromCharCode(13) == '\r'
true
$(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
}
试试这个
$('#searchbox input').bind('keypress', function(e) {
if(e.keyCode==13){
// Enter pressed... do anything here...
}
});