使用jQuery,我如何找到哪个键被按下时,我绑定到按键事件?
$('#searchbox input').bind('keypress', function(e) {});
我想在按下ENTER键时触发提交。
(更新)
尽管我自己找到了(或者更好的:一个)答案,但似乎还有变化的空间;)
keyCode和它之间有区别吗?特别是如果我只找ENTER,它永远不会是unicode键?
是否有些浏览器提供一种属性,而其他浏览器提供另一种?
使用jQuery,我如何找到哪个键被按下时,我绑定到按键事件?
$('#searchbox input').bind('keypress', function(e) {});
我想在按下ENTER键时触发提交。
(更新)
尽管我自己找到了(或者更好的:一个)答案,但似乎还有变化的空间;)
keyCode和它之间有区别吗?特别是如果我只找ENTER,它永远不会是unicode键?
是否有些浏览器提供一种属性,而其他浏览器提供另一种?
当前回答
以下是对各种浏览器行为的详细描述http://unixpapa.com/js/key.html
其他回答
检查优秀的jquery。热键插件,支持键组合:
$(document).bind('keydown', 'ctrl+c', fn);
其实这样更好:
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扩展,将处理进入键被按下。
(function ($) {
$.prototype.enterPressed = function (fn) {
$(this).keyup(function (e) {
if ((e.keyCode || e.which) == 13) {
fn();
}
});
};
}(jQuery || {}));
$("#myInput").enterPressed(function() {
//do something
});
在这里可以找到一个工作示例 http://jsfiddle.net/EnjB3/8/
根据Kilian的回答:
如果只输入按键很重要:
<form action="javascript:alert('Enter');">
<input type=text value="press enter">
</form>