Boucle infinie de soumission de formulaire à l’aide de l’événement jquery

Le code est bloqué dans une boucle lorsque j’essaie d’attraper une soumission de formulaire. Le but est de remplacer une valeur du formulaire avant sa sortie.

$('form').submit(function(e){ e.preventDefault(); $.ajax({ type: "POST", url: 'convert.asp', data: $('form').serialize(), success: function(response){ $('input[name="field1"]').val(response); $('form').submit(); } }); return false; }); 

Quelqu’un a-t-il une idée?

UPDATE: Je l’avais à l’origine lié à un événement de clic de bouton et cela fonctionnait, mais je voulais conserver l’élément clé [entrée] du bouton d’envoi. Voyant que le code est un peu illogique, est-il préférable d’attraper un appui sur une touche?

Je suppose que votre ajax est une tentative de valider le formulaire avant sa soumission éventuelle. Dans ce cas, il suffit de dissocier la fonction de validation avant de soumettre le formulaire.

  success: function(response){ $('input[name="field1"]').val(response); // Add unbind to remove validations $('form').unbind().submit(); } 

Dans le succès, vous déclenchez une autre soumission …

 $('form').submit(function(e){ e.preventDefault(); // redundant, you return false in the end. <<<=== $.ajax({ type: "POST", url: 'convert.asp', data: $('form').serialize(), success: function(response){ $('input[name="field1"]').val(response); $('form').submit(); // <=== delete this! <<<<================= } }); return false; }); 

Vous soumettez votre formulaire, empêchez la soumission uniquement pour soumettre le formulaire, qui est empêché pour être soumis … 😀