Как вызвать клиентские проверки ASP.NET без отправки? - PullRequest
4 голосов
/ 17 января 2011

У меня есть веб-сайт в ASP.NET (WebForms, NOT MVC), на котором есть форма опроса, разделенная на несколько слайдов.У каждого слайда есть следующая кнопка, которая, очевидно, выполняет переход (на стороне клиента, не отправляет ответ или удаленный запрос) к следующему слайду.

На каждом слайде у меня есть несколько элементов управления ASP.NET со связанными с ними валидаторами.Я хочу, чтобы эти валидаторы запускались при нажатии следующей кнопки (или, может быть, когда каждый ввод теряет фокус?).

Я вспомнил, как ASP.NET выполнял проверку на стороне клиента при потере фокуса, но, возможно, я ошибался... (Я перестал заниматься разработкой ASP.NET около 3 лет, поэтому не могу вспомнить)

Спасибо

ОБНОВЛЕНИЕ:

Этобыло бы лучше, чтобы ASP.NET запускал каждый валидатор, когда связанный элемент управления терял фокус.Я помню, как это делал ASP.NET (или я сплю? = P)

Ответы [ 5 ]

3 голосов
/ 17 января 2011

Сначала необходимо убедиться, что у всех ваших валидаторов есть целевые элементы управления, указанные с помощью атрибута «TargetControlID» в валидаторах.

Затем вы можете настроить группу проверки для каждой страницы и указать имя группы в следующей кнопке и на самих элементах управления.

Если вы используете валидаторы регулярных выражений, вы можете выбрать их из этого веб-сайта

для проверки на стороне клиента Если вы используете настраиваемые валидаторы, вы можете создать клиентскую функцию и указать ее в настраиваемом валидаторе, используя атрибут ClientValidationFunction и установив EnableclientScript = "true" в настраиваемом валидаторе.

Просто убедитесь, что ваша клиентская функция имеет параметры sender и args.

2 голосов
/ 17 января 2011

Похоже, есть поставляемая функция JavaScript с именем Page_ClientValidate , которая должна вызываться для проверки правильности вручную из JavaScript.Я не использовал его, хотя, так что YMMV.

1 голос
/ 17 января 2011

поместите все свои валидаторы на стороне клиента в одну группу валидации и с помощью кнопки «Далее» добавьте ту же группу валидации. Когда вы нажимаете кнопку, он автоматически запускает все валидаторы, прежде чем выполнить постбэк.

что касается ручного запуска проверки ... Вы также можете использовать ValidatorOnSubmit (). Я помню, как делал это в другом проекте, но мне трудно найти код.

0 голосов
/ 11 сентября 2017

Короче говоря, украсьте вашу модель, теперь аннотации данных поддерживаются из Asp.Net 4.5. Проверьте мой ответ здесь. Проверка веб-формы на стороне клиента

0 голосов
/ 18 января 2011

Кажется, что включение 'SetFocusOnError' на каждом валидаторе вызывает валидацию всякий раз, когда я пытаюсь покинуть поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...