Эта ссылка содержит подробное объяснение проверки ASP.Net. Прокрутите вниз до абзаца «Клиентский API», где объясняется, что вы можете установить переменную Page_IsValid. Однако следует помнить, что нет гарантии, что этот API останется прежним в будущих версиях .NET, поэтому проверьте наличие Page_IsValid.
РЕДАКТИРОВАТЬ:
Извините, в своем предыдущем комментарии я немного спешил и просто ответил на ваш вопрос, не глядя на картину в целом. Я просто перечитал ваш вопрос, и на самом деле он ничего не сделает, потому что когда вы нажимаете кнопку «Отправить», пользователь запускает повторную проверку всех валидаторов. Поскольку у имени пользователя текстового поля есть значение, ваш обязательный валидатор действителен, и форма отправляется.
Я думаю, что лучшее решение в долгосрочной перспективе (и такое, которое напрямую не вызывает функции javascript в .NET) - это следующее:
- Добавить скрытое поле
- Создать необходимый полевой валидатор для этого скрытого
поле
- Поместите необходимый полевой валидатор позади первого требуемого валидатора и выдайте ему то же сообщение об ошибке, что и требуемый валидатор
- Поместите некоторое значение в скрытое поле в
Ваша функция успеха, если
имя пользователя доступно, во всех остальных
делайте скрытое поле пустым.
Это немного обходной путь, но это будущее и проще, чем выяснить, как это сделать с помощью функций javascript платформы валидатора .NET.