Recientemente tuve una pregunta en getting checkbox validation working en el lado del cliente dentro de un proyecto de MVC. Esta pregunta fue respondida con éxito, pero planteó otra consulta.MVC Añadiendo métodos en jquery.validate.unobtrusive.js
Para que mi casilla de validación para trabajar que tenía que añadir los siguientes bits de JavaScript directamente en 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);
});
Esto funcionó muy bien, pero estoy contento de tener que cambie este archivo en caso de que Microsoft o el complemento de validación chicos actualicen el archivo en el futuro. Si aún no estoy trabajando en el proyecto, este archivo puede sobrescribirse sin que las personas se den cuenta de que se ha personalizado.
Así que con eso en mente He intentado añadir esto en un archivo JavaScript externo:
$.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);
});
Lamentablemente ahora el script del lado del cliente en mis casillas de verificación no funciona. ¿Alguien puede ver lo que estoy haciendo mal?
Gracias de antemano
S
Gracias por esto de nuevo! Es "extraño", aunque entiendo exactamente lo que estás diciendo y entiendo que debería funcionar, tan pronto como tomo 'addMethod' y 'add' de jquery.validate.unobtrusive.js y coloco cualquiera de las combinaciones anteriores en otra ¡archivo js deja de funcionar! Incluso he puesto consol.log en el método ath addBool dentro del archivo jquery.validate.unobtrusive.js para comprobar que "mustbetrue" se está registrando y lo está. ¡Como dije raro! – Sniffer
Creo que es muy importante decir que necesita esto en su marcado para que la solución anterior funcione: –
Puede simplificar la adición de su adaptador discreto: $ .validator .unobtrusive.adapters.addBool ("mustbetrue"); Tampoco debería necesitar llamar al análisis siempre que agregue el nuevo método de validación y el adaptador fuera de un documento listo. –