Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查是否未检查n个复选框_Javascript_Jquery_Checkbox - Fatal编程技术网

Javascript 检查是否未检查n个复选框

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

我有以下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, 
    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

参考资料:


您提到了HTML结构,但我没有看到。如果您发布此脚本所针对的HTML代码段,我们将能够帮助您。如果取消选中两个复选框,并选中一个复选框,会怎么样?您需要选中所有复选框(无论有多少)还是只选中至少一个复选框?它根据ID针对这些输入。如果所有复选框都未选中,我需要返回false,如果选中一个复选框,我不需要返回false。只需检查它是否存在:
&($(''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);