2009-12-04 79 views
6

我想要么简单地吞下输入键按<input>字段,要么替代标签键按下。我还没有决定哪个最好。如何防止在jQuery中输入密钥提交?

我该如何在jQuery中做到这一点?我得到这个至今:

$(document).ready(function(){ 
    ... 
    //handle enter key 
    $("input").keypress(function (e) { 
     var k = e.keyCode || e.which; 
     if (k == 13) { 
      //??? 
     } 
    }); 
}); 

(即e.keyCode || e.which部分在this question建议。)

什么可能我放在那里,或者(a)取消该事件或别的(二)强制Tab键按下?

回答

14

使用e.preventDefault()可以防止默认操作,在这种情况下,它将提交表单。

7

或者return false;

$(document).ready(function(){ 
    ... 
    //handle enter key 
    $("input").keypress(function (e) { 
     var k = e.keyCode || e.which; 
     if (k == 13) { 
      return false; // !!! 
     } 
    }); 
}); 
2

另外,如果你想只是模仿到下一个控制标签,正如你所说,你可以尝试this method by jdsharp

$(document).ready(function(){ 
... 
//handle enter key 
$("input").keypress(function (e) { 
    var k = e.keyCode || e.which; 
     if (k == 13) { 
      $(this).focusNextInputField(); 
     } 
    }); 
});