Javascript 检查是否未检查n个复选框
我有以下HTML元素:Javascript 检查是否未检查n个复选框,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我有以下HTML元素: <input type="checkbox" id="dog_pop_123"> <input type="checkbox" id="cat_pop_123"> <input type="checkbox" id="parrot_pop_123"> 但是,如果最后一个输入不存在,而前两个输入确实存在并已检查,则将返回false,并且不应返回false 如何解决此问题?请尝试以下代码: var id = 123, check
<input type="checkbox" id="dog_pop_123">
<input type="checkbox" id="cat_pop_123">
<input type="checkbox" id="parrot_pop_123">
但是,如果最后一个输入不存在,而前两个输入确实存在并已检查,则将返回false,并且不应返回false
如何解决此问题?请尝试以下代码:
var id = 123,
checkboxes = $('#dog_pop_' + id + ', #cat_pop_' + id + ', #parrot_pop_' + id);
if(checkboxes.filter(function() {return this.checked !== true;}).length !== checkboxes.length) {
//Not all checkboxes are checked
}
应该这样做,除非你有很多ID以pop_123结尾。在这种情况下,您也可以添加[type=checkbox]
过滤器
在选择器中使用
$=
表示以结束。请参见我建议将复选框分组到一个公共父项中:
<fieldset id="group1">
<input type="checkbox" id="dog_pop_123">
<input type="checkbox" id="cat_pop_123">
<input type="checkbox" id="parrot_pop_123">
</fieldset>
如果复选框数等于未选中复选框数,则返回false(使用!
运算符),否则返回true
参考资料:
&($(''parrot_pop'+ID+')。长度&!$('parrot_pop'+ID+')。长度)
。在进行测试之前选择元素(更干净一点)。我需要用ID将它们作为目标。我不能只查找所有复选框。David Thomas这是一种很好的方法。但是,我无法对它们进行分组,因为它们位于DOM的不同部分。也可能是我不想考虑的其他复选框……那么,如果你能展示一些html示例,让我们看看你的html是什么样的,你和我们都可以。
if($('input[id$="pop_123"]').length != $('input[id$="pop_123"]:checked').length ) {
return false;
}
<fieldset id="group1">
<input type="checkbox" id="dog_pop_123">
<input type="checkbox" id="cat_pop_123">
<input type="checkbox" id="parrot_pop_123">
</fieldset>
return !($('#group1 input:checkbox').length == $('#group1 input:checkbox:not(":checked")').length);