2009-12-04 4 views
6

Je voudrais soit simplement avaler un Entrez appuyez sur la touche dans les champs <input> ou bien remplacer à la place Tab appuyez sur les touches. Je n'ai pas encore décidé lequel est le meilleur.Comment empêcher la saisie d'une clé dans jQuery?

Comment puis-je faire cela dans jQuery? J'ai ce jusqu'à présent:

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

(Cette partie e.keyCode || e.which a été recommandé dans this question.)

Qu'est-ce que je pourrais mettre là pour (a) annuler l'événement ou autre à (b) forcer un Touche de tabulation appuyer sur?

Répondre

14

Avec e.preventDefault() vous pouvez empêcher l'action par défaut, qui dans ce cas est submiting la forme.

7

Ou return false;:

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

Aussi, si vous souhaitez imiter juste un onglet au contrôle suivant, comme vous l'avez mentionné, vous pouvez essayer 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(); 
     } 
    }); 
}); 
Questions connexes