我正在使用来自J rn Zaefferer在基地组织的出色的jquery .validate插件
我使用的是asp.net,所以有一个很长的表单,尽管该表单通过带有按钮的jquery手风琴分成3部分,以在手风琴窗格之间切换。
我希望窗格一中的按钮验证窗格一个字段,与窗格二相同,等等。
显然,在任何其他技术中,我都会使用多种形式,一点也不困难,尽管我不能在.net中做到这一点。
我想我需要的几乎是一个$('#aspnetForm').validate().unbind()或类似的东西-在手风琴上点击我要求重新验证表单,所以我知道我在哪一页上,然后我可以设置新的规则等。
我试着清除规则$('#aspnetForm').validate().rules('remove'),虽然我似乎要为每个字段做这个,而不是表单本身?
我可以发布任何必要的代码示例,尽管整个脚本现在是相当大的,所以我必须挖出块。
希望我能从逻辑上理解--基本上,一种清除所有规则的方法,这样我就可以创建新的规则,因为我在一个不同的手风琴面板上,这是我所希望的解决方案,尽管我在挣扎。
非常感谢,特里
发布于 2009-09-13 07:39:06
这确实是我在做的事情,在一些长时间的防火墙工作之后,似乎其中一个选择器没有被清除,所以错误的规则被装载起来了。
现在它们被解决了,每个对.validate的调用都有它自己的规则集,并且取消(比方说) .click事件,它们看起来并不是可加性的,所以页面1.验证用3条规则清除了所有的页面2,验证规则。
感谢你的输入,尽管你很好,标记你的回答,以表示感谢的任何投入。
干杯,特里
发布于 2009-09-10 18:24:28
当窗体的任何部分显示如下时,我会尝试设置一个标志
<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位于表单的第一部分。
https://stackoverflow.com/questions/1406227
复制相似问题