Personnalisation des delegates d’événement dans le plug-in de validation jQuery

Je suis en train de configurer le plug-in de validation jQuery pour l’utiliser dans notre projet.

Par défaut, certains événements sont automatiquement configurés pour la gestion. Ie focus in / out, les événements clé sur toutes les entrées de validation du feu. Je veux qu’il ne se déclenche que lorsque le bouton de soumission est cliqué.

Cette fonctionnalité semble être intégrée au plug-in, ce qui rend la tâche difficile (sans modifier le code du plug-in, pas ce que je veux faire).

J’ai trouvé les appels de fonction eventDelegate dans la méthode prototype du code du plugin:

$(this.currentForm) .validateDelegate(":text, :password, :file, select, textarea", "focusin focusout keyup", delegate) .validateDelegate(":radio, :checkbox, select, option", "click", delegate); 

Lorsque je supprime ces lignes du plug-in, j’obtiens mon résultat. Toutefois, je préférerais de loin faire quelque chose en dehors du plug-in pour y parvenir.

Quelqu’un peut-il m’aider s’il vous plaît? Si vous avez besoin de plus de détails, s’il vous plaît faites le moi savoir. J’ai cherché google avec peu de succès.

Merci

EDIT : J’essaie fondamentalement de valider le formulaire uniquement lorsque l’événement de soumission est déclenché. Par défaut, le plug-in valide chaque fois que le focus est perdu dans un contrôle d’entrée.

Trouvé la réponse. Il était caché dans les options de la méthode validate.

Voir les options onfocusout etc sur cette page: http://docs.jquery.com/Plugins/Validation/validate#options

que je peux mettre à faux.

Voici mon code qui configure mon validateur (j’espère que d’autres le trouveront utile):

 $(document).ready(function() { $("form").each(function() { $(this).validate({ validateDelegate: function() { }, onsubmit: true, onkeydown: false, onkeyup: false, onfocusin: false, onfocusout: false, errorContainer: "#PanelError", errorLabelContainer: "#PanelError ul", wrapper: "li", ignoreTitle: true, errorClass: "Error", highlight: function(element, errorClass, validClass) { $(element).addClass(errorClass).removeClass(validClass); $(element.form).find("#" + element.id) .addClass(errorClass); }, unhighlight: function(element, errorClass, validClass) { $(element).removeClass(errorClass).addClass(validClass); $(element.form).find("#" + element.id) .removeClass(errorClass); } }); }); });