2009-09-10 3 views
1

Я использую фантастический JQuery плагин .validate от Jörn Zaefferer at bassistancejquery validate и asp.net - четкие правила?

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

Я хочу кнопку в панели одной панели для проверки одного поля, то же самое с панели два и т.д.

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

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

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

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

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

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

ответ

1

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

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

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

Cheers, Terry

1

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

<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 в первом разделе формы.

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