Я думаю, вам может пригодиться опция ниже. В основном он переопределяет один из стандартных сценариев проверки ASP.NET. И внедряет в него некоторую логику, чтобы добавить / удалить класс ошибок в родительском div.
Проблема, с которой я столкнулся при выполнении этой задачи, заключалась в том, чтобы заставить мой скрипт выполняться после запуска проверок, поскольку DOM не перезагружается. Переопределив этот исходный сценарий проверки, вы можете запускать собственный сценарий при обновлении отображения проверки.
Таким образом, вы можете продолжать использовать другие элементы управления проверкой. Вы должны разместить скрипт внизу вашей страницы или главной страницы. Я также использовал JQuery, чтобы сделать вещи проще.
* Обратите внимание, что приведенный ниже код требует, чтобы ваши валидаторы были настроены на динамическое отображение. Если вы не хотите, чтобы они были видны, вы можете добавить к ним класс css и установить отображение: нет.
<script type="text/javascript">
function ValidatorUpdateDisplay(val) {
if (typeof (val.display) == "string") {
if (val.display == "None") {
return;
}
if (val.display == "Dynamic") {
val.style.display = val.isvalid ? "none" : "inline";
return;
}
}
if ((navigator.userAgent.indexOf("Mac") > -1) && (navigator.userAgent.indexOf("MSIE") > -1)) {
val.style.display = "inline";
}
val.style.visibility = val.isvalid ? "hidden" : "visible";
//--- Add / Remove Error Class
var triggeredSiblings = 0;
if (val.isvalid) {
$(val).siblings('span').each(function () {
if ($(this).isvalid == false) { triggeredSiblings = 1; }
});
if (triggeredSiblings == 0) { $(val).closest("div").removeClass("error"); }
} else {
$(val).closest("div").addClass("error");
}
}
</script>