Solución:
Probé el enfoque de Xhalent, pero desafortunadamente no funcionó para mí. El enfoque de Robin funcionó y no funcionó. Funcionó muy bien para los elementos agregados dinámicamente, pero si intentara usar JQuery para eliminar todos los atributos de validación y los intervalos del DOM, la biblioteca de validación aún intentaría validarlos.
Sin embargo, si elimina los datos de “validación discreta” del formulario además de “validationData”, funcionó como un encanto para agregar y eliminar dinámicamente elementos que desea validar o no validar.
$("form").removeData("validator");
$("form").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("form");
Creé una extensión para la biblioteca jquery.validate.unobtrusive que resolvió este problema para mi situación; podría ser de interés.
Applying unobtrusive jquery validation to dynamic content in ASP.Net MVC
De hecho, me gusta mucho la simplicidad de la solución @viggity y @Robins, así que la convertí en un pequeño complemento rápido:
(function ($) {
$.fn.updateValidation = function () {
var $this = $(this);
var form = $this.closest("form")
.removeData("validator")
.removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse(form);
return $this;
};
})(jQuery);
Uso de ejemplo:
$("#DischargeOutcomeNumberOfVisits")
.attr("data-val-range-min", this.checked ? "1" : "2")
.updateValidation();