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

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

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

(更新)

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

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

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


当前回答

其实这样更好:

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

其他回答

$(document).ready(function(){
    $("#btnSubmit").bind("click",function(){$('#'+'<%=btnUpload.ClientID %>').trigger("click");return false;});
    $("body, input, textarea").keypress(function(e){
        if(e.which==13) $("#btnSubmit").click();
    });
});

希望这对你有所帮助!!

检查优秀的jquery。热键插件,支持键组合:

$(document).bind('keydown', 'ctrl+c', fn);

... 这个例子阻止表单提交(通常是捕获击键#13时的基本意图):

$('input#search').keypress(function(e) {
  if (e.which == '13') {
     e.preventDefault();
     doSomethingWith(this.value);
   }
});

试试这个:

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);
    }
});