Empêcher le défaut sur le formulaire Envoyer jQuery

Qu’est-ce qui ne va pas avec ça?

HTML:

jQuery:

 $("#cpa-form").submit(function(e){ e.preventDefault(); }); 

    Essaye ça:

     $("#cpa-form").submit(function(e){ return false; }); 

    Utilisez la nouvelle syntaxe de l’événement “on”.

     $(document).ready(function() { $('form').on('submit', function(e){ // validation code here if(!valid) { e.preventDefault(); } }); }); 

    Cite: https://api.jquery.com/on/

    Je crois que les réponses ci-dessus sont toutes correctes, mais cela ne montre pas pourquoi la méthode de submit ne fonctionne pas.

    Eh bien, la méthode submit ne fonctionnera pas si jQuery ne peut pas obtenir l’élément form et jQuery ne donne aucune erreur à ce sujet. Si votre script est placé dans la tête du document, assurez-vous que le code s’exécute une fois que DOM est prêt . Donc, $(document).ready(function () { // your code here // }); va résoudre le problème.

    La meilleure pratique est de toujours placer votre script au bas du document.

     $('#cpa-form input[name="Next"]').on('click', function(e){ e.preventDefault(); }); 
     $(document).ready(function(){ $("#form_id").submit(function(){ return condition; }); }); 

    Votre code est fin, il vous suffit de le placer dans la fonction Prêt.

     $(document).ready( function() { $("#cpa-form").submit(function(e){ e.preventDefault(); }); } 

    DEPRETED – cette partie est obsolète, alors ne l’utilisez pas.

    Vous pouvez également essayer ce code si vous avez par exemple ajouté ultérieurement des formulaires dynamics. Par exemple, vous avez chargé une fenêtre asynchrone avec ajax et souhaitez soumettre ce formulaire.

     $('#cpa-form').live('submit' ,function(e){ e.preventDefault(); // do something }); 

    UPDATE – vous devriez utiliser la méthode jQuery on () pour essayer d’écouter le DOM du document si vous voulez gérer du contenu ajouté dynamicment.

    Cas 1, version statique: Si vous ne disposez que de quelques écouteurs et que votre formulaire à gérer est codé en dur, vous pouvez alors l’écouter directement au “niveau du document”. Je n’utiliserais pas les auditeurs au niveau document mais j’essaierais d’aller plus loin dans le doom tree car cela pourrait entraîner des problèmes de performance (dépend de la taille de votre site Web et de votre contenu)

     $('form#formToHandle').on('submit'... 

    OU

     $('form#formToHandle').submit(function(e) { e.preventDefault(); // do something }); 

    Cas 2, version dynamic: Si vous écoutez déjà le document dans votre code, alors ce serait bien pour vous. Cela fonctionnera également pour le code ajouté ultérieurement via DOM ou dynamic avec AJAX.

     $(document).on('submit','form#formToHandle',function(){ // do something like e.preventDefault(); }); 

    OU

     $(document).ready(function() { console.log( "Ready, Document loaded!" ); // all your other code listening to the document to load $("#formToHandle").on("submit", function(){ // do something }) }); 

    OU

     $(function() { // <- this is shorthand version console.log( "Ready, Document loaded!" ); // all your other code listening to the document to load $("#formToHandle").on("submit", function(){ // do something }) }); 

    Bonjour cherchait une solution pour faire fonctionner un formulaire Ajax avec Google Tag Manager (GTM), le retour faux empêchant l’achèvement et soumettre l’activation de l’événement en temps réel sur google analytics solution consistait à changer le retour false par e.preventDefault () ; cela a fonctionné correctement suit le code:

      $("#Contact-Form").submit(function(e) { e.preventDefault(); ... }); 

    C’est une question ancienne, mais la réponse acceptée ici n’aboutit pas vraiment à la racine du problème.

    Vous pouvez résoudre ce problème de deux manières. D’abord avec jQuery:

     $(document).ready( function() { // Wait until document is fully parsed $("#cpa-form").on('submit', function(e){ e.preventDefault(); }); } 

    Ou sans jQuery:

     // Gets a reference to the form element var form = document.getElementById('cpa-form'); // Adds a listener for the "submit" event. form.addEventListener('submit', function(e) { e.preventDefault(); }); 

    Vous n’avez pas besoin d’utiliser return false pour résoudre ce problème.