jQuery验证:多个组中的任意一个单选按钮
我有一个有三组单选按钮的表单,比如:jQuery验证:多个组中的任意一个单选按钮,jquery,jquery-validate,Jquery,Jquery Validate,我有一个有三组单选按钮的表单,比如: <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_options
<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意义上)。我可以用通常的方法,在按钮上挂上一种或另一种“require”类,但只针对单个组,而不是所有组——在组1中选择一个收音机仍然会导致对组2和组3中缺少选择的抱怨。我还玩弄了
require\u from\u group
,但这似乎并没有好多少。有什么想法吗?谢谢 引用OP:
“如果选择了这12个收音机中的任何一个,则表单应通过验证…”
“…我还玩弄了require\u from\u group
,但这似乎并没有太好。”
对我来说效果很好,但您没有显示足够的代码来知道哪里出了问题。只需确保包括
我的演示使用以下jQuery以及单选按钮的HTML标记,尽管我确保将第三个按钮组重命名为answer\u 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'
}
});
});
演示:
注释:分组
选项只是将多个字段的消息分组到一个字段中。非常适合这种情况,通常情况下,当您只需要满足三个字段中的一个字段时,您会在三个字段上同时获得消息
备选方案: 可以利用
.rules('add')
方法来减轻上述重复的规则声明
$('[name^="answer_option"]').each(function() {
$(this).rules('add', {
require_from_group: [1, '[name^="answer_option"]']
});
});
演示2:请解释“玩弄
要求团队提供”是什么意思,以及为什么它看起来没有任何改善require\u from\u group
完全按照您的要求执行。您还应该显示足够的代码来构建示例,我们可以看到您可能出错的地方。您对.validate()
的调用在哪里?顺便说一下,最后一组按钮与第二组按钮的名称相同。Oops(第二组按钮的名称错误)--在编辑中更正。