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