MVC Ajout de méthodes dans jquery.validate.unobtrusive.js
J'ai récemment eu une question sur prise en case de validation de travail sur le côté client au sein d'un projet MVC. Cette question a été répondu, mais a soulevé une autre question.
Pour que ma case de validation de travailler j'ai besoin d'ajouter les éléments suivants javascript directement dans jquery.validate.unobtrusive.js:
$jQval.addMethod("mustbetrue", function (value, element, param) {
//check if dependency is met
if (!this.depend(param, element))
return "dependency-mismatch";
return element.checked;
});
adapters.add("mustbetrue", function (options) {
setValidationValues(options, "mustbetrue", true);
});
cela fonctionnait très bien, mais je suis malheureux d'avoir à modifier ce fichier en cas de Microsoft ou de la validation plugin garçons à jour le fichier dans l'avenir. Si je ne suis pas encore à travailler sur le projet, ce fichier peut être remplacé sans que les gens s'en aperçoivent a été personnalisé.
Donc, avec cela à l'esprit, j'ai essayé d'ajouter ceci dans un fichier javascript externe:
$.validator.addMethod("mustbetrue", function (value, element, param) {
//check if dependency is met
if (!this.depend(param, element))
return "dependency-mismatch";
return element.checked;
});
$.validator.unobtrusive.adapters.add("mustbetrue", function (options) {
setValidationValues(options, "mustbetrue", true);
});
Malheureusement maintenant le script côté client, sur mes cases à cocher ne s'exécute pas. N'importe qui peut voir ce que je fais mal?
Merci d'avance
S
source d'informationauteur Sniffer
Vous devez vous connecter pour publier un commentaire.
Sniffer,
Plus je la regarde, plus je me serrer la tête (moi-même).
Après un autre examen, Darin la méthode de travail, à condition que vous ajoutez une ligne à son script de page:
Chaque fois que vous apportez une modification (par exemple l'ajout d'un nouvel adaptateur), vous devez ré-analyser la discrète attributs de validation. Depuis la dernière action en
jquery.validate.unobtrusive.js
est l'analyse des attributs, et la carte est ajoutée après l'analyse, de la ré-analyse permet de résoudre ce problème.counsellorben
P. S. Cela résout votre problème, mais laisse encore en suspens la question de savoir comment ajouter d'autres validateurs personnalisés qui n'utilisent pas des méthodes intégrées de
jquery.validate.js
sans modifierjquery.validate.unobtrusive.js
.P. P. S. j'ai trouvé la réponse pour l'ajout de méthodes de validation. Afin d'ajouter de validation personnalisée mmethods sans modifier
jquery.validate.unobtrusive.js
vous avez besoin d ' "emprunter" des son code à ajouter à votre page de script. Ajout d'une méthode personnalisée, puis se présente comme suit:Discrète de validation me donne rien, mais le chagrin.
Dans une très très simple page de test, cela fonctionne:
Cependant, lorsque je déplace ce code pour ma forme plus complexe, soudain, il s'arrête de travailler et je n'ai aucune idée de pourquoi et pas le temps de se plonger dans la discrète code pour essayer de le trouver.
counsellorben la solution fonctionne dans ma forme plus complexe.
Si quelqu'un peut m'indiquer un site qui explique en détail comment ajouter un validateur personnalisé pour discrète de la validation, je vous serai éternellement reconnaissant. Chaque site que je visite une autre solution.
Je n'ai aucun problème à ajouter ce code à un fichier javascript, j'ai pillé de Ce site
Êtes-vous certain que vous avez mis votre script APRÈS les scripts jquery dans votre page? Le mien est le dernier de la liste.