Traiter la touche "Entrée" / "Retour" dans Chrome

J'ai une page de type AJAX-y. Lorsque l'utilisateur clique sur «GO», je dois exécuter une fonction javascript spécifique. Je veux aussi simuler le clic "GO" quand un utilisateur frappe "Entrée" ou "Retour". Veuillez noter que je ne veux pas "soumettre" la page. La raison en est parce que je fais tout en JavaScript.

Pour gérer la touche "Entrée" / "Retour" appuyez sur IE et FireFox, j'utilise le code suivant:

$(document).ready(function () { $('#root').keypress(function(e) { if (e.keyCode == '13') { goButton(); } }); }); 

Malheureusement, ce code ne fonctionne pas dans Chrome. La fonction goButton () est appelée. Le problème est cependant que la page est soumise. Qu'est-ce que je fais mal?

En supposant que vous avez un formulaire:

 $('#theForm').submit(function(e){ e.preventDefault(); goButton(); return false; // just to be sure. }); 

Vous devez empêcher l'événement de soumission du formulaire, qui est appelé lorsque le formulaire est focalisé et qu'un utilisateur appuie sur l'entrée.

Je suis d'accord avec BGerrissen, c'est la meilleure approche. Cependant, pour mieux vous adapter à votre code, vous pouvez simplement ajouter les arrêts à votre fonction actuelle:

 $(document).ready(function () { $('#root').keypress(function(e) { if (e.keyCode == '13') { e.preventDefault();//Stops the default action for the key pressed goButton(); return false;//extra caution, may not be necessary } }); }); 

Essayez de renvoyer le faux directement après votre déclaration if (qui appelle goButton ()).

Consultez ici un exemple: en utilisant jQuery pour empêcher la saisie de formulaire lorsque vous appuyez sur Entrée