235 votes

jQuery disable formulaire soumettre sur entrer

J’ai le code javascript suivant dans ma page qui ne semble pas fonctionner.

Je voudrais désactiver soumettant le formulaire sur entrer, ou, mieux encore, d’appeler mon envoi de formulaire ajax. Ou l’autre solution est acceptable, mais le code que je suis notamment au-dessus n’empêche pas la forme de soumission.

473voto

zessx Points 17769

Si keyCode n'est pas pris, attraper which:

$('#formid').bind("keyup keypress", function(e) {
  var code = e.keyCode || e.which; 
  if (code  == 13) {               
    e.preventDefault();
    return false;
  }
});

EDIT: raté, il est préférable d'utiliser keyup au lieu de keypress

EDIT 2: Comme dans certaines versions récentes de Firefox, la soumission de formulaire n'est pas empêché, il est plus sûr d'ajouter l'événement keypress pour la forme. Aussi il ne fonctionne pas (plus?) par juste de liaison de l'événement pour la forme "nom", mais seulement à l'id du formulaire. Donc j'ai fait ce plus évident, en changeant le code exemple de manière appropriée.

66voto

VisioN Points 62518

Généralement le formulaire est envoyé sur Enter quand vous avez mise au point sur les éléments d’entrée.

Nous pouvons désactiver Enter appuyer sur des éléments d’entrée dans un formulaire :

DEMO : http://jsfiddle.net/bnx96/

43voto

user1017926 Points 258

Encore plus courte :

24voto

gdoron Points 61066
<pre><code></code><blockquote> <p><strong>Event.which</strong> propriété normalise event.keyCode et event.charCode. Il est recommandé de regarder event.which pour la touche entrée du clavier.</p> </blockquote><p><a href="http://api.jquery.com/event.which/"><code></code>docs.</a></p></pre>

17voto

weblap.ro Points 160
<pre><code></code><p>Cette solution fonctionne sur toutes les formes sur le site Web (voir aussi les formes insérées avec ajax), action préventive entre seulement dans les textes d’entrée. Placez-le dans une fonction de prêt de document et oublier ce problème pour une vie.</p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X