我有一个带有三组单选按钮的表单,让我们说:
<input type="radio" name="answer_option1" value="1" id="ans_options1" />
<input type="radio" name="answer_option1" value="2" id="ans_options2" />
<input type="radio" name="answer_option1" value="3" id="ans_options3" />
<input type="radio" name="answer_option1" value="4" id="ans_options4" />
<input type="radio" name="answer_option2" value="5" id="ans_options5" />
<input type="radio" name="answer_option2" value="6" id="ans_options6" />
<input type="radio" name="answer_option2" value="7" id="ans_options7" />
<input type="radio" name="answer_option2" value="8" id="ans_options8" />
<input type="radio" name="answer_option3" value="9" id="ans_options9" />
<input type="radio" name="answer_option3" value="10" id="ans_options10" />
<input type="radio" name="answer_option3" value="11" id="ans_options11" />
<input type="radio" name="answer_option3" value="12" id="ans_options12" />
如果选择了这12个无线电中的任何一个,则表格应通过验证(在jqueryvalidation.org意义上)。我能够通过按钮将一种或多种类别的“需求”类挂起来的常用方法,但仅适用于个别群体,而不是所有群组 - 在第1组中选择一个无线电仍会导致对缺少选择的投诉在第2组和第3组中。我也使用require_from_group
进行了操作,但这似乎并没有那么好。有什么想法吗?谢谢!
答案 0 :(得分:1)
引用OP :
&#34;如果选择了这12个无线电中的任何一个,表单应通过验证。 ...&#34;
&#34; ...我也与
require_from_group
进行了比赛,但这看起来并没有好转。&#34;
The require_from_group
method对我来说很好,但是你没有显示足够的代码来知道你哪里出错了。只需确保包含the additional-methods.js
file。
我的演示使用以下jQuery以及单选按钮的HTML标记,但我确保将您的第三个按钮组重命名为answer_option3
。
$(document).ready(function() {
$('#myform').validate({
rules: {
answer_option1: {
require_from_group: [1, '[name^="answer_option"]']
},
answer_option2: {
require_from_group: [1, '[name^="answer_option"]']
},
answer_option3: {
require_from_group: [1, '[name^="answer_option"]']
}
},
groups: { // groups all messages into one
arbitraryName: 'answer_option1 answer_option2 answer_option3'
}
});
});
DEMO:http://jsfiddle.net/qf2Pg/1/
备注:groups
选项只是将多个字段的消息分组为一个。非常适合这种情况,当您只需要满足三分之一时,通常可以在三个字段上同时收到消息。
<强> ALTERNATIVE 强>:
可以利用.rules('add')
方法来缓解上面的重复规则声明。
$('[name^="answer_option"]').each(function() {
$(this).rules('add', {
require_from_group: [1, '[name^="answer_option"]']
});
});
DEMO 2:http://jsfiddle.net/qf2Pg/2/