我知道这已在here中得到解答
但我的html如下所示:
<div >
<label> <input type="checkbox" name="service_area[]" value="colorado">colorado</label>
<label> <input type="checkbox" name="service_area[]" value="michigan">michigan</label>
</div>
<div >
<label> <input type="checkbox" name="fav[]" value="skiing">skiing</label>
<label> <input type="checkbox" name="fav[]" value="volley">volley</label>
</div>
目标:
如何实现这一目标?
每次我使用带有'[]'名称的jvalidate时,它似乎只反映到第一个元素,而不是所有元素。
我忘记提到我需要检查多个复选框。
上面更新了html。
所以,rynhe的答案给了我一点启发:
$.validator.addMethod(
"atleastone",
function(value, element, params) {
return $('[name="' + element.name +'"]:checked').size() > 0;
},
'at least one');
rules: {
'service_area[]': {
atleastone : true,
},
'fav[]': {
atleastone : true,
},
最重要的部分是'service_area[]'
。
以上代码适用对我来说很好。
谢谢〜
答案 0 :(得分:0)
根据validation for at least one checkbox
中的Tats_innit
回答
你可以改变这一行
var checkboxes = $('.require-one');
到
var checkboxes = $('input[name="river[]"]');
根据你的html元素var checkboxes = $('input[name="service_area[]"');
答案 1 :(得分:0)
在这种情况下,您无需添加任何特殊方法。当一个组中的每个复选框共享相同的name
时,只需使用required
规则即可。由于名称包含括号[]
,因此请用引号括起来。
$(document).ready(function () {
$('#myform').validate({
rules: {
'service_area[]': {
required: true
},
'fav[]': {
required: true
}
}
});
});
至少需要service_area[]
组中的一个复选框。
至少需要fav[]
组中的一个复选框。
我使用errorPlacement
选项在每次分组之前移动错误消息,但您可以根据需要进行调整。 See all plugin options