2009-12-04 8 views
6

Ich möchte entweder einfach schlucken ein Geben Sie drücken Sie die Taste in <input> Felder oder sonst ersetzen Tab Tasten drücken. Ich habe noch nicht entschieden, welches das Beste ist.Wie verhindere ich die Eingabe des Schlüssels in jQuery?

Wie kann ich das in jQuery tun? Ich habe dies so weit gekommen:

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

(Der e.keyCode || e.which Teil in this question empfohlen wurde.)

Was könnte ich dort setzen, um entweder (a) das Ereignis abbrechen oder aber (b) zwingen, einen Tabulatortaste drücken?

Antwort

14

Mit e.preventDefault() können Sie die Standardaktion verhindern, die in diesem Fall das Formular sendet.

7

Oder return false;:

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

Auch, wenn Sie möchten nur eine Registerkarte auf die nächste Steuer nachahmen, wie Sie bereits erwähnt, könnten Sie this method by jdsharp versuchen.

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