Необходимо изменить поведение клиентской валидации - а именно добавлять класс "error" в родительский элемент поля и на контейнер этих полей.
Проект на asp.net webforms (версия фраемворка 4.5)
Добавил в проект пакет
Microsoft.AspNet.ScriptManager.WebForms.5.0.0
В ScriptManager'e добавил строку
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
Судя по документации при указании атрибута Path, ScriptManager будет загружать запрошенный скрипт по указанному пути заместо сборки.
Но в моем проекте он загрузил его из сборки...
В
этой статье дается описание работы ScriptManager'a где указано что в 3.5 некоторые контролы загружают скрипты валидации минуя ScriptManager и в итоге измененный скрипт не загрузится.
Хоть сказано что "некоторые" контролы, в моем проекте все контролы при валидации минуют ScriptManager, в то время как другие скрипты загружаются нормально.
Многие советуют переопределять функции валидации при загрузке страницы
$(function(){
if (typeof ValidatorUpdateDisplay != 'undefined') {
var originalValidatorUpdateDisplay = ValidatorUpdateDisplay;
ValidatorUpdateDisplay = function (val) {
if (!val.isvalid) {
$("#" + val.controltovalidate).css("border", "2px solid red");
}
originalValidatorUpdateDisplay(val);
}
}
});
Но этот код не всегда работает, так как ScriptManager загружает их динамически
Или я что-то делаю не так?
На запасной план есть возможность просто сделать свои валидаторы наследовав стандартные...