2009-07-07 7 views
6

J'utilise JQuery Validation. Maintenant, je veux que mes règles soient invoquées seulement quand certaines conditions sont satisfaites, à savoir, je veux $("#AppSelectField").is(':hidden') pour retourner false, seulement alors j'appelle les règles.Validation conditionnelle de règle dans JQuery

Mes règles est la suivante:

$(function() { 
    $("#RequestLock").validate({ 
     rules: { 
     FloorNum:{ 
     required: true, 
     digits: true 
     }, 


    }, 
    message: { 
    FloorNum: "The floor number must be integer", 

}, 

}); 
}); 

Comment modifier la section ci-dessus pour satisfaire mes besoins? note Je ne veux pas écrire ma propre méthode personnalisée pour required et digits.

Répondre

16

Cela devrait le faire:

$(function() { 
    var checkIfFieldVisible = function() { 
     return !$("#AppSelectField").is(':hidden'); 
    }; 

    $("#RequestLock").validate({ 
     rules: { 
      FloorNum: { 
       required: { depends: checkIfFieldVisible }, 
       digits: { depends: checkIfFieldVisible } 
      }, // <-- EXTRA COMMA 
     }, 
     message: { 
      FloorNum: "The floor number must be integer", 
     }, // <-- EXTRA COMMA 
    }); 
}); 

(j'ai marqué certaines virgules supplémentaires que vous avez sur votre code, car ils feront étrangleur IE)

+0

Peut-on valider/pas valider le formulaire ensemble en fonction de certains valeurs?. Par exemple j'ai un formulaire imbriqué avec les boutons save/submit. Je veux valider uniquement sur Envoyer. Mon problème est quand j'ai le class = "requis" sur chaque champ car le formulaire est très dynamique. S'il vous plaît aider. – Aanu

+1

Vous n'avez même pas besoin de la fonction, vous pouvez simplement définir 'depends = '#AppSelectField: visible'' – forivall

Questions connexes