Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery验证:多个组中的任意一个单选按钮_Jquery_Jquery Validate - Fatal编程技术网

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(第二组按钮的名称错误)--在编辑中更正。