Ré-activation de Submit after prevent default

J'essaie de supprimer ou de rétablir le préventif par défaut, de sorte que mon formulaire sera envoyé sur de bonnes données.

J'ai essayé plusieurs exemples. Voici mon code et certains des exemples que j'ai essayés.

Ce code fonctionne très bien pour ce que je veux. Juste la dernière chose et réinitialiser le div que je peux mettre en œuvre après avoir obtenu cela.

function lengthRestriction(elem, min, max) { var uInput = elem.value; if (uInput.length >= min && uInput.length <= max) { return true; } else { var cnt = document.getElementById('field'); cnt.innerHTML = "Please enter between " + min + " and " + max + " characters"; elem.focus(); $('#ShoutTweet').submit(function(e) { e.preventDefault(); //bind('#ShoutTweet').submit(); //$('#ShoutTweet').trigger('submit'); }); } }​ 

J'ai également installé un jsbin http://jsbin.com/ebedab/93

Je ne suis pas complètement sûr de ce que vous demandez, mais si votre objectif est de détruire votre gestionnaire de submit personnalisé, utilisez ceci:

 $("#ShoutTweet").unbind("submit"); 

Cela suppose que vous avez un formulaire normal (pas Ajax).

N'essayez pas de configurer et d'annuler un gestionnaire de soumission à partir de votre fonction de validation, faites-le .preventDefault() : appelez la validation à partir d'un seul gestionnaire de soumission et appelez seulement .preventDefault() si la validation échoue:

 $(document).ready(function() { $('#ShoutTweet').submit(function(e) { if (/* do validations here, and if any of them fail... */) { e.preventDefault(); } }); }); 

Si toutes vos validations passent, n'appelez pas e.preventDefault() et l'événement de soumission se produira par défaut.

Alternativement, vous pouvez renvoyer des false de votre gestionnaire de soumission afin d'éviter la valeur par défaut:

  $('#ShoutTweet').submit(function(e) { if (!someValidation()) return false; if (!secondValidation()) return false; if (someTestVariable != "somevalue") return false; // etc. }); 

Il suffit d'appeler soumettre sur le formulaire

 $('#ShoutTweet').submit();