这是一个简单的把戏。这是jQuery代码,required
如果选中了任何属性,则可以通过更改属性来利用html5验证。以下是您的html代码(确保为组中的所有元素添加必填项。)
<input type="checkbox" name="option[]" id="option-1" value="option1" required/> Option 1
<input type="checkbox" name="option[]" id="option-2" value="option2" required/> Option 2
<input type="checkbox" name="option[]" id="option-3" value="option3" required/> Option 3
<input type="checkbox" name="option[]" id="option-4" value="option4" required/> Option 4
<input type="checkbox" name="option[]" id="option-5" value="option5" required/> Option 5
以下是jQuery脚本,如果选择了任何一个,它将禁用进一步的验证检查。选择使用名称元素。
$cbx_group = $("input:checkbox[name='option[]']");
$cbx_group = $("input:checkbox[id^='option-']"); // name is not always helpful ;)
$cbx_group.prop('required', true);
if($cbx_group.is(":checked")){
$cbx_group.prop('required', false);
}
这里的小陷阱:由于您使用的是html5验证,因此请确保在验证之前即在提交表单之前执行此操作。
// but this might not work as expected
$('form').submit(function(){
// code goes here
});
// So, better USE THIS INSTEAD:
$('button[type="submit"]').on('click', function() {
// skipping validation part mentioned above
});