jquery validate и asp.net - четкие правила? - PullRequest
1 голос
/ 10 сентября 2009

Я использую фантастический плагин jquery .validate от Jörn Zaefferer на bassistance

Я использую asp.net, так что имейте одну длинную форму, хотя форма разбита на 3 секции через jquery аккордеон с кнопками для переключения между панелями аккордеона.

Я хочу, чтобы кнопка на первой панели проверяла поля первой панели, то же самое с второй панелью и т. Д.

Очевидно, что в любой другой технологии я бы использовал несколько форм и не испытывал никаких трудностей, хотя я не могу сделать это в .net.

Я думаю , что мне нужно, это почти $('#aspnetForm').validate().unbind() или что-то подобное - при нажатии на аккордеон я прошу повторно подтвердить форму, чтобы я знал, на какой странице я нахожусь, и мог затем просто установите новые правила и т. д.

Я пытался очистить правила $('#aspnetForm').validate().rules('remove'), хотя мне кажется, что мне придется делать это для каждого поля, а не для самой формы?

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

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

Большое спасибо, Терри

Ответы [ 2 ]

1 голос
/ 13 сентября 2009

это действительно то, что я делал, и после некоторой длительной работы с firebug кажется, что один из селекторов не был очищен, поэтому загружались неправильные правила.

Теперь они решены, каждый вызов .validate имеет свой собственный набор правил и отменяет (скажем) событие .click, они не кажутся аддитивными, поэтому page1.validate с 3 правилами очищает все страницы2 .validate rules.

Спасибо за ваш вклад, хотя idrumgood, отметил ваш ответ, чтобы сказать спасибо за любой вклад.

Ура, Терри

1 голос
/ 10 сентября 2009

Я бы попробовал установить флаг, когда любая часть формы отображается как

<div id="form_section_1" class="displayed">
     ....
</div>
<div id="form_section_2">
     ....
</div>
<div id="form_section_3">
     ....
</div>

Тогда в ваших правилах проверки сделайте их условными.

if($('#form_section_1').attr('class').search('displayed') != -1){
     var is_section_1_displayed = true;
}
else{ var is_section_1_displayed = false;

Сделайте это для каждого (возможно, более эффективным способом)

Тогда в ваших правилах проверки сделайте что-то вроде

email: {
         required = is_section_1_displayed;
       }

Предполагая, что email находится в первом разделе формы.

...