Empêchez un bouton de soumettre sur la touche Entrée

J'ai deux boutons un avec id = enterToSubmit et autres avec id = clickToSubmit. Lorsqu'un utilisateur frappe l'entourage, je veux que le bouton "enterToSubmit" ne soumette pas le bouton "clickToSubmit".

Sur la même page, j'ai une zone de texte id = title et, en charge de la page, je cache le bouton "enterToSubmit", jusqu'à ce que l'utilisateur entre quelque chose dans la zone de texte, les utilisateurs peuvent appuyer sur la touche Entrée pour envoyer le formulaire.

Comment préviens-t-il le bouton "clickToSubmit" pour soumettre quand les utilisateurs appuient sur la touche Entrée?

Malheureusement, vous ne pouvez pas modifier le bouton de soumission par défaut dans HTML, c'est toujours la première input / button avec type submit / image .

Alors que vous pouvez tenter de saisir les événements de keypress Enter manuellement, il est très peu fiable de le faire, car Enter n'est pas toujours supposé soumettre un formulaire, selon (a) quel type d'élément est focalisé, (b) si shift / ctrl + Entrer est utilisé, (c) quels sont les autres éléments sous la forme et (d) quel navigateur il est. Si vous manquez un cas, vous obtiendrez des soumissions par défaut accidentelles; Si vous frappez un cas, vous ne devriez pas, vous obtiendrez des saisies accidentelles.

Donc, c'est en général mieux, lorsque vous souhaitez contrôler l'action de soumission par défaut d'un formulaire, pour ajouter un bouton supplémentaire comme premier bouton de soumission dans le formulaire. Si vous ne souhaitez pas que ce bouton soit affiché, vous pouvez le positionner avec une grande valeur négative négative pour le repousser sur le côté de la page. (C'est un peu moche, mais le cacher par display ou visibility l'arrêtera dans certains navigateurs.)

Donc, vous pourriez peut-être «cacher» le bouton entrer-à-soumettre, non pas en le faisant disparaître, mais en le poussant sur la page où il ne peut pas être vu, puis en attrapant l'événement de click sur celui-ci pour return false et arrêter la soumission du formulaire .

Comment préviens-t-il le bouton "clickToSubmit" pour soumettre quand les utilisateurs appuient sur la touche Entrée?

Essaye ça:

 $("#clickToSubmit").keypress(function(e){ if(e.keyCode === 13){ e.preventDefault(); } }); 
  jQuery('#clickToSubmit').click(function(e){ if(e.keyCode==13){ e.preventDefault(); } }); 

Tout d'abord, vous devez vous assurer que les deux boutons ne sont pas de type submit. Maintenant, sur ces deux boutons, vous pouvez appeler deux fonctions javascript différentes. EnterToSubmit () et clickToSubmit (), voir aussi sur enterToSubmit () vous lisez la touche enter appuyez sur

If (e.keyCode === 13) {form.submit (); }

Et appelez form.submit ()

Tandis que sur clickToSubmit (), vous faites une forme directe.submit ()

Essayez ce code pour la zone de texte entrer

 $j("#title").keypress(function(e1){ if(e1.keyCode==13){ // if user is hitting enter return false; } }); 

Pour envoyer le bouton

 $j("#clickToSubmit").submit(function(e1){ if(e1.keyCode==13){ // if user is hitting enter return false; } }); 
  $('#formId').on('keyup keypress', function(e) { var keyCode = e.keyCode || e.which; if (keyCode === 13) { e.preventDefault(); return false; } }); Usually form is submitted on Enter when you have focus on input elements. We can disable Enter key (code 13) on input elements within a form. 

En outre, comme dans certaines versions plus récentes de Firefox, la soumission des formulaires n'est pas empêchée, il est plus sûr d'ajouter l'événement de la pression de touche au formulaire.