event.preventDefault () ne fonctionne pas dans Chrome et Opera

J’utilise jQuery Validation Plugin 1.9.0 avec jQuery 1.7.2.

Je souhaite que mon formulaire soit validé avec le plugin de validation jQuery. Cela fonctionne bien dans Firefox 20.0.1 et IE 10. Mais dans Chrome (26.0.1410.64 m) et dans Opera (12.14), je ne peux pas cliquer sur annuler dans mon formulaire sans empêcher la validation.

Ceci est mon code javascript:

submitHandler: function(form) { if (this.submitButton.value != 'cancel') { $(form).hide(); $('#load').show(); $(form).submit(); } else { event.preventDefault(); } } 

Lorsque je clique sur annuler sur FF et IE, je reviens à ma page d’accueil Web comme prévu, mais lorsque je le fais dans Chrome et Opera, mes messages d’erreur s’affichent lorsque le formulaire est incomplètement rempli. Dans les deux cas, la méthode event.preventDefault () est appelée, mais il semble que le comportement diffère selon le navigateur.

Avez-vous une idée de ce qui peut être faux?

Merci de votre aide !

Vous ne .preventDefault() pas le but de .preventDefault() . Cela ne vise pas à empêcher le comportement par défaut d’une fonction. Il est conçu pour annuler les comportements intégrés aux éléments normaux, c’est-à-dire supprimer la navigation et l’historique d’une balise d’ancrage, etc.

Voir: http://api.jquery.com/event.preventDefault/

À ma connaissance, vous ne pouvez pas activer ou désactiver la validation par programme. Une fois que vous avez initialisé le plugin avec .validate() , il n’ya pas de méthode pour le “réinitialiser”.

Cependant, pour utiliser simplement un bouton “annuler”, il existe plusieurs méthodes. L’une consiste à conserver le bouton Annuler en dehors de

, puis à utiliser un gestionnaire de click pour en faire autre chose. .

DEMO : http://jsfiddle.net/TZVA6/1

Rocket Hazmat a également indiqué qu’une autre méthode consiste à atsortingbuer au button un atsortingbut type="button" empêchant l’action d’ submit par défaut.

DEMO : http://jsfiddle.net/TZVA6/2/