2010-10-06 18 views
8

J'utilise jquery pour la validation dans mon application web MVC2 (as described here) et je voudrais câbler quelques rappels que le plugin de validation de jquery supporte, comme invalidHandler, etc.Comment puis-je ajouter des rappels à la validation de jquery (lorsqu'il est utilisé dans MVC 2)

Je peux modifier manuellement le MicrosoftMvcJQueryValidation.js et ajoutez mes callbacks (en __MVC_EnableClientValidation, dans les options variables) mais je cherchais une meilleure approche car ce fichier est utilisé à plusieurs reprises et je ne veux pas avoir pour créer des copies uniques.

Une façon d'ajouter manuellement un rappel invalidHandler (etc) à la validation de formulaire, serait exactement ce dont j'ai besoin. Évidemment, cela se ferait normalement via les options lors de l'appel de validate() pour la première fois, mais puisque Microsoft contrôle cette partie particulière, ce n'est pas une option.

Répondre

9

De Herikstad.net:

Si vous avez un problème où vous avez besoin d'ajouter l'option invalidHandler à votre jqueryValidate (jQuery Validation Plugin) après avoir été initialisé, c'est la façon dont il peut être fait:

$(document).ready(function(){ 
    $("#contactForm").bind('invalid-form.validate', 

     function(form, validator) { 
      alert('validation failed!'); 
     } 
    ); 
}); 

vous réguliérement ajouter ceci sur initialisation:

$(document).ready(function(){ 
    $('#contactForm').validate({ 
     invalidHandler: 
     function(form, validator) { 
      alert('validation failed!'); 
     }, 
     rules: {} 
    }); 
}); 

Note: invalidHandler sera appelée lorsque la validation du formulaire échoue sur soumettre (par exemple les valeurs pour un champ sont manquantes ou similaires).

Cela peut fonctionner pour les autres options de le plugin jqueryValidate, mais je ne suis pas sûr de la propriété à utiliser. J'ai trouvé la propriété à lier dans le fichier jquery.validate.js, vous pourriez vouloir regarder là.