Comment manuellement revalider / déclencher la validation à l'aide discrète de jQuery de validation?
J'ai créé mon propre conditionnelle attribut validation pour valider mon modèle MVC sur le client et le serveur en héritant de RequiredAttribute
et la mise en œuvre de IClientValidatable
. L'idée est que si une propriété booléenne sur mon modèle est vrai, puis une autre propriété est requise. Dans la vue, ce phénomène se manifeste comme une case à cocher qui dicte si une zone de texte doit être rempli.
Cela fonctionne parfaitement, sauf lorsque l'utilisateur effectue les actions suivantes:
- Vérifie la case (le champ est maintenant nécessaire).
- Soumet le formulaire (côté client validation, le message d'erreur affiché).
- Utilisateur décoche la case (message d'erreur reste affiché, le champ n'est plus nécessaire).
Je tiens à revalider le formulaire lorsque la case est cochée ou décochée, ou encore mieux, juste à revalider ce domaine, de sorte que le message d'erreur ne s'affiche plus. J'ai essayé différentes combinaisons de l'appel de jQuery validate()
méthode, mais rien ne semble être en mesure de ré-exécuter la validation.
- Je utiliser le code javascript suivant pour configurer ma fonction de validation et la discrète adaptateur.
$.validator.addMethod(
"requiredif",
function(value, element, parameters) {
var selector = "#" + parameters["dependentpropertyname"];
var triggerValue = parameters["triggervalue"].toString().toLowerCase();
var actualValue = $(selector).is(":checked").toString().toLowerCase();
if (actualValue === triggerValue) return $.validator.methods.required.call(this, value, element, parameters);
return true;
});
$.validator.unobtrusive.adapters.add(
"requiredif",
["dependentpropertyname", "triggervalue"],
function(options) {
options.rules["requiredif"] = {
dependentpropertyname: options.params["dependentpropertyname"],
triggervalue: options.params["triggervalue"]
};
options.messages["requiredif"] = options.message;
}
);
Merci!
OriginalL'auteur andrej351 | 2012-07-18
Vous devez vous connecter pour publier un commentaire.
J'ai eu un problème similaire où je voulais revalider un datepicker champ de valider à l'aide de jquery et jquery ui. Ce post m'a aidé à le comprendre.
La clé, il suffit d'ajouter un rappel à la validité de la méthode de sélection. Quelque chose comme:
OriginalL'auteur ScotterC
Vous devriez vérifier Toute Épreuve De Validation. C'est ce que vous essayez de le faire sans avoir à rouler votre propre.
Cela ne répond pas à la question. L'OP a demandé comment peler et orange et vous avez répondu en disant que vous devriez manger une pomme à la place. Pourrait éventuellement être un commentaire.
OriginalL'auteur Jay Harris