Вы не можете изменить RequiredFieldValidator для обновления другого элемента управления, например текстового поля, он будет обновлять только себя или ValidationSummary, если он есть на странице.
2 варианта, которые вы должны получить желаемый результат:
- Использовать элемент управления CustomValidator
- Создайте свой собственный серверный элемент управления , который может обновлять класс css текстового поля
Хотя ни одна из этих опций, скорее всего, не даст вам «чистый» HTML-код, который вы ищете, без каких-либо дополнительных тегов span или div, они будут соответствовать другим вашим требованиям, если вы готовы потратить время на написание JavaScript (или jQuery). Однако, учитывая доступные альтернативы (в основном проверка на стороне клиента только через какую-то платформу), вам все же лучше придерживаться проверки ASP.NET, поскольку она может обеспечить проверку на стороне сервера.
Второй вариант более сложен, но серверный элемент управления можно использовать на любой странице вашего проекта или обернуть в DLL для развертывания в нескольких проектах. С CustomValidator есть несколько копий и вставок, если вы хотите дублировать функциональность на нескольких элементах управления, что может быть сложно поддерживать.
Чтобы получить реальный пример того, как вы можете использовать jQuery и пользовательские серверные элементы управления для получения результатов, которые вы ищете, перейдите на страницу оформления заказа на Складной складной стул (вам нужно будет добавить товар в корзину первым, чтобы туда попасть). Когда вы отправляете форму, не заполняя ее, недействительным текстовым полям назначаются новые классы CSS, которые меняют цвет фона. Однако, поскольку они являются серверными элементами управления, функциональность будет работать независимо от того, включен JavaScript или нет.