2011-01-17 5 views
4

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

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

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

Благодаря

UPDATE:

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

+0

какие валидаторов вы используете ?? – Eric

+0

Обычные. Обязательные проверки поля, проверка диапазона, некоторые RegEx ... но в основном требуется. – emzero

+0

Если вы используете '.val()' из jQuery, вам также нужно вызвать '.change()'. Как '$ (" # вещь "). Val (''); $ ("# Вещь").change(); ' –

ответ

3

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

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

Если вы используете регулярное выражение валидаторов вы можете выбрать их из this website

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

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

+0

Проблема - это «следующая» кнопка на самом деле не кнопка, а ссылка, которая выполняет некоторый javascript, чтобы перейти к следующему слайду. Не требуется обратная связь или удаленный запрос. – emzero

+0

как использовать метод onchange() javascript? или onblur()? – Eric

+0

, вы должны использовать эти методы в самом текстовом поле. – Eric

2

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

1

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

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

+0

Проблема - это« следующая »кнопка на самом деле не кнопка, а ссылка, которая выполняет некоторый javascript для перехода к следующему слайду. Не возвращать назад, ни удаленный запрос. – emzero

0

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

0

Короче украсить вашу модель, в настоящее время Аннотации данных поддерживаются с Asp.Net 4.5 Проверьте мой ответ здесь .. Client side webform validations

 Смежные вопросы

  • Нет связанных вопросов^_^