我正在使用 Jö中的精彩jquery .validate插件Zaefferer at bassistance

我正在使用asp.net,所以有一个长形式,虽然表格通过jquery手风琴分为3个部分,按钮可在手风琴窗格之间切换。

我希望窗格1中的按钮验证窗格一个字段,与窗格二相同,等等。

显然在任何其他技术中,我会选择多种形式并且没有任何困难,但我不能在.net中执行此操作。

我认为我需要的几乎是 $('#aspnetForm')。validate()。unbind()或类似的东西 - 关于手风琴点击我是要求重新验证表单,所以我知道我在哪个页面,然后我可以设置新的规则等。

我尝试清除规则 $('#aspnetForm')。validate()。rules('remove')虽然看起来我不得不为每个字段而不是表单执行此操作本身?

我可以发布任何必要的代码示例,虽然整个脚本现在很大,所以我不得不挖出块。

希望我在逻辑意义上面 - 基本上,一种清除所有规则的方法,以便我可以创建新规则,因为我在一个不同的手风琴面板是我希望的解决方案,虽然我是挣扎。

非常感谢, 特里

有帮助吗?

解决方案 2

这确实是我在做的事情,经过一些长时间的萤火虫工作之后,似乎其中一个选择器没有被清除,所以错误的规则被加载了。

现在他们已经解决了,每次调用.validate都有自己的一套规则,并且点击(比如说).click事件,它们似乎不是附加的,所以带有3条规则的page1.validate清除所有page2 .validate rules。

感谢您输入idrumgood,标记您的答案,感谢任何输入。

干杯, 特里

其他提示

当表单的任何部分显示为

时,我会尝试设置一个标志
<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 位于表单的第一部分。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top