La méthode setTimeout in form.submit () ne fonctionne pas

J'essaie la fonction setTimeout() dans le formulaire submit. Cependant, avant d'exécuter la fonction, le formulaire est soumis et tout ce qui se trouve dans la fonction timeout n'est pas exécuté. Vous trouverez ci-dessous l'extrait de code.

 $(window).load(function () { $("#myform").submit(function() { setTimeout(function(){ alert("me after 1000 mili seconds"); return false; }, 1000); }); }; 

Aidez-moi à mieux comment résoudre ce problème …

 $(window).load(function () { var submit = false; $("#myform").submit(function(e) { setTimeout(function(){ alert("me after 1000 mili seconds"); submit = true; $("#myform").submit(); // if you want }, 1000); if(!submit) e.preventDefault(); }); }; 

Le formulaire se présente immédiatement. Vous devez déléguer l'action par défaut. Cela devrait fonctionner pour vous:

 $(window).load(function () { $("#myform").submit(function(e) { e.preventDefault(); setTimeout(function(){ alert("me after 1000 mili seconds"); }, 1000); }); }); 

Voir cette démonstration jsFiddle .

Si vous souhaitez désactiver l'action de soumission sur le formulaire, vous pouvez essayer:

 $(window).load(function () { $("#myform").submit(function(e) { e.preventDefault(); setTimeout(function(){ alert("me after 1000 mili seconds"); return false; }, 1000); }); }); 

Tout d'abord, vous avez oublié de fermer ) en dernière ligne

 $(window).load(function () { $("#myform").submit(function(e) { e.preventDefault(); setTimeout(function(){ alert("me after 1000 mili seconds"); return false; }, 1000); }); }); ^---- here you forgotten to put brace.