I adjunto un controlador de eventos a ciertos botones, que alteró la configuración del objeto validador en ese formulario particular.
$(".jsCancel").click(function (e) {
$(e.currentTarget).closest("form").validate().settings.ignore = "*"
});
Esto ha funcionado como un encanto para mí en MVC3.
No sé si esto lo ayuda en particular, pero como uso un formulario ajax, tuve que adjuntar el evento a estos botones cada vez que se reemplazó el contenido del formulario ajax, utilizando el evento ajax success. El código completo que reparses el formulario y adjunta el evento para cancelar los botones es:
$(document).ajaxSuccess(function (event, xhr, settings) {
var $jQval = $.validator, adapters, data_validation = "unobtrusiveValidation";
$jQval.unobtrusive.parse(document);
$(".jsCancel").click(function (e) {
$(e.currentTarget).closest("form").validate().settings.ignore = "*"
});
});
Gracias. He resuelto este problema agregando la clase "cancelar" a mi botón cuando se generó el contenido. Tengo una pregunta para ti ¿Qué significa este selector ".jsCancel"? ¿Y trataste de usar este $ (". JsCancel"). Live ("clic", ... en cambio este $ (". JsCancel"). Click (función (e) ... – Sergii
Añadiendo la clase cancel no trabajo para mí, por lo tanto, mi trabajo alternativo.Por lo general, prefijo las clases CSS con js, si se utilizan para encontrar elementos en lugar de estilo. Puse esa clase en mis botones de envío que no deberían validar la forma. Supongo que en vivo () o on() también funcionaría, simplemente no estoy acostumbrado a usarlo. – Skymt