我的表单上有多个复选框。我需要让用户选择至少一个复选框,否则表单将不会提交。我尝试了必需的属性,但它检查用户是否已选中所有复选框。
怎么做?
答案 0 :(得分:2)
一种解决方案是向所有复选框添加必需的属性,当选中至少其中一个复选框时,使用jQuery删除所有复选框的必需属性。
var requiredCheckboxes = $(':checkbox[required]');
requiredCheckboxes.change(function(){
if(requiredCheckboxes.is(':checked')) {
requiredCheckboxes.removeAttr('required');
}
else {
requiredCheckboxes.attr('required', 'required');
}
});
答案 1 :(得分:0)
您可以使用仅循环访问html复选框的Javascript,并将Variable issomethingchecked
设置为TRUE,如果其中至少有一个被填充。
demo http://jsfiddle.net/updpxrfj/2/
var checkboxElements = document.getElementsByTagName("input");
var issomethingchecked = false;
for(var i = 0; i < checkboxElements.length; i++) {
if(checkboxElements[i].type.toLowerCase() == 'checkbox') {
if (checkboxElements[i].checked == true) {
issomethingchecked = true;
}
}
if (issomethingchecked === true) {
// Continue with submiting the form
console.log(issomethingchecked);
}
}