2009-12-04 15 views
6

mi piacerebbe o semplicemente ingoiare un Invio tasto in <input> campi o altro, invece sostituiamo Tab tasti premuti. Non ho ancora deciso quale sia il migliore.Come si impedisce la chiave di invio Invia in jQuery?

Come posso farlo in jQuery? Ho questo finora:

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

(Che e.keyCode || e.which parte è stato raccomandato in this question.)

Cosa potrei mettere lì a uno (a) cancellare l'evento o altro da (b) forzare una Premere il tasto Tab?

risposta

14

Con e.preventDefault() è possibile impedire l'azione predefinita, che in questo caso sta inviando il modulo.

7

O return false;:

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

Inoltre, se si desidera simulare solo una scheda per il controllo successivo, come lei ha ricordato, si potrebbe provare 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(); 
     } 
    }); 
}); 
Problemi correlati