Aquí está el caso de uso:MVC3 validación no intrusiva: cómo eliminar/volver a adjuntar la validación de un grupo de elementos?
Tengo este formulario largo con grupo de campo que solo se vuelve visible si el usuario hace una selección determinada en una de las entradas visibles. Al leer la publicación de Brad Wilson sobre el tema, pensé en jQuery.validator.unobtrusive.parse ('.extra-data') donde .extra-data es una clase de div oculta. No hubo suerte ya que los datos ya estaban allí cuando se realizó el primer análisis.
Así que al final se me ocurrió esto para eliminar las reglas:
$('.data-panel').find('input[type="text"], textarea, select').each(function (i, item) {
var currentRules = $(item).rules('remove'); // Saving removed rules to a sorta dictionary
if (!$.isEmptyObject(currentRules)) {
removedRules[$(item).attr("name")] = currentRules;
}
});
y esto para volver a montar ellos:
$('.data-panel').find('input[type="text"], textarea, select').each(function (i, item) {
if (!$.isEmptyObject(removedRules[$(item).attr('name')])) {
$(item).rules('add', removedRules[$(item).attr('name')]);
}
});
El problema es que se siente un poco hacky que a mí m recorriendo literalmente cada campo eliminando y volviendo a unir esas reglas de validación. Mi pregunta es: ¿no hay una manera más directa? El rendimiento también es un problema, en una de esas enormes formas puede sentir la demora entre el clic y la ejecución de validación.
http://stackoverflow.com/questions/5104288/adding-validation-with-mvc-3-jquery-validator-in-execution-time –