Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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/2/jquery/85.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
Javascript jQuery验证字段名包含括号的组_Javascript_Jquery_Jquery Validate - Fatal编程技术网

Javascript jQuery验证字段名包含括号的组

Javascript jQuery验证字段名包含括号的组,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,亲爱的Javascript专业人士: 我有一个包含两组复选框的HTML表单。其中一个组包含复选框,应在其中选中一个复选框以通过jQuery验证。其他组不是必须选择的 第一组至少应选中一个复选框: 第二组这些复选框是自愿选择的: 复选框的名称包含数组符号,例如,复选框名称[1]1表示填写表单的人员 现在,这一点非常有效: $.validator.addMethod'checkbox',functionvalue{ 返回$'input[type=checkbox]:已选中。大小>0; },“请至少选

亲爱的Javascript专业人士:

我有一个包含两组复选框的HTML表单。其中一个组包含复选框,应在其中选中一个复选框以通过jQuery验证。其他组不是必须选择的

第一组至少应选中一个复选框: 第二组这些复选框是自愿选择的: 复选框的名称包含数组符号,例如,复选框名称[1]1表示填写表单的人员

现在,这一点非常有效:

$.validator.addMethod'checkbox',functionvalue{ 返回$'input[type=checkbox]:已选中。大小>0; },“请至少选择一个。”; 但它适用于所有复选框,因此即使从第二个自愿组中选择了一个复选框,也可以通过验证

如果我尝试对强制复选框进行分组,它将不起作用。我想这可能是因为他们的名字中包含了上面提到的[]

//添加组 $.validator.addMethodcheckbox_1,函数值,元素{ 返回$'。复选框_1:选中。长度>0; },“请至少选择一个。”; $“步骤”。验证{ //将复选框分组在一起 小组:{ 复选框_1:appSourceFirstoption[1]appSourceSecondoption[1]appSourceThirdoption[1] }, //仅将组规则应用于其中一个复选框 appSourceFirstoption[1]:{checkbox_1:true}, }
你们知道我怎么解决这个问题吗?

1你们缺少规则选项

rules: {
        "appSourceFirstoption[1]": { checkbox_1: true }
       }
2更改$'。复选框_1:选中。'。长度>0;到

完整代码

$(document).ready(function () {


$('#step').validate({

    // grouping the checkboxes together
    groups: {
              checkbox_1: "appSourceFirstoption[1] appSourceSecondoption[1] appSourceThirdoption[1]"
            },

    // applying the group rules to just one of the checkbox
    rules: {
              "appSourceFirstoption[1]": { checkbox_1: true }
           }
});

$.validator.addMethod("checkbox_1", function (value, element) {
    return $('input[type=checkbox]:checked').length > 0;
}, 'Please select at least one.');


});

工作小提琴

你能不能添加你的html代码段以及按要求添加的html。由于复选框已经是一个组的一部分,请给它们所有相同的名称属性,这在很大程度上是毫无意义的。您甚至不需要自定义方法:
$(document).ready(function () {


$('#step').validate({

    // grouping the checkboxes together
    groups: {
              checkbox_1: "appSourceFirstoption[1] appSourceSecondoption[1] appSourceThirdoption[1]"
            },

    // applying the group rules to just one of the checkbox
    rules: {
              "appSourceFirstoption[1]": { checkbox_1: true }
           }
});

$.validator.addMethod("checkbox_1", function (value, element) {
    return $('input[type=checkbox]:checked').length > 0;
}, 'Please select at least one.');


});