题 检查是否使用jQuery选中了复选框


如何检查复选框数组中的复选框是否使用复选框数组的ID进行检查?

我使用以下代码,但无论id如何,它始终返回已选中复选框的计数。

function isCheckedById(id) {
  alert(id);
  var checked = $("input[@id=" + id + "]:checked").length;
  alert(checked);

  if (checked == 0) {
    return false;
  } else {
    return true;
  }
}

947
2018-02-05 00:23


起源


一个 复选框数组?从来没有听说过这样的事情。这是JQuery特有的,还是插件/小部件? - Pekka 웃
复选框数组的含义如下:<input type =“checkbox”name =“chk []”id =“chk []”value =“apple”> <input type =“checkbox”name =“chk []”id = “chk []”value =“banana”> <input type =“checkbox”name =“chk []”id =“chk []”value =“orange”>等。 - Jake
复选框数组有什么问题?你还怎么做“检查所有适用的”输入? - nickf
确保你的 id s是独一无二的! name 可以(并且应该,在这种情况下)重复,但如果你复制,你会发现很多奇怪的事情 id! = d - Jeff Rupert
我不得不删除“@”才能正常工作。此外,您可以将最后5行缩小为1:return(checked!= 0); - B. Clay Shannon


答案:


ID必须在您的文档中是唯一的,这意味着您 不能 做这个:

<input type="checkbox" name="chk[]" id="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" id="chk[]" value="Bananas" />

相反,删除ID,然后按名称或包含元素选择它们:

<fieldset id="checkArray">
    <input type="checkbox" name="chk[]" value="Apples" />

    <input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>

现在jQuery:

var atLeastOneIsChecked = $('#checkArray:checkbox:checked').length > 0;
//there should be no space between identifier and selector

// or, without the container:

var atLeastOneIsChecked = $('input[name="chk[]"]:checked').length > 0;

576
2018-02-05 00:31



对我来说输入名称没有双引号:输入[name = multiplecheck []]:选中,谢谢! - Alejandro Quiroz
为何使用 $('#checkArray :checkbox:checked').length > 0; 什么时候比较简单 $('#checkArray').checked 有效并可在更多版本上使用? - mmcrae
.checked不起作用。 - Oddman
@Oddman它确实有效,只是不在jquery对象上。而不是$(elem).checked,请尝试elem.checked。 - Dan Williams
@DanWilliams是的但是在mmcrae给出的例子中没有。 - Oddman


$('#' + id).is(":checked")

如果选中该复选框,则会得到。

对于具有相同名称的复选框数组,您可以通过以下方式获取已选中的复选框列表:

var $boxes = $('input[name=thename]:checked');

然后循环遍历它们,看看你可以做什么检查:

$boxes.each(function(){
    // Do stuff here with this
});

要查找已检查的数量,您可以执行以下操作:

$boxes.length;

1696
2018-02-05 00:24



嗯..如何知道在那个复选框数组中检查了多少? - Jake
刚编辑它以查找已检查的号码。 - John Boker
另一种方式是 $('#'+id).attr('checked'),相当于 $('#' + id).is(":checked")但更容易记住IMO。 - Zubin
@Zubin:小心点 .attr('checked')。它的行为在jQuery 1.6中发生了变化。它曾经回归 false 要么 true。现在它又回来了 undefined 要么 "checked"。 .is(':checked') 没有这个问题。 - Joey Adams
注意:自jQuery 1.8以来,不推荐使用size() - 而是使用.length - JM4


$('#checkbox').is(':checked'); 

如果选中复选框,则上面的代码返回true,否则返回false。


240
2018-05-31 09:37



使用$(this).is(':checked')时非常有用;谢谢! - PinoyStackOverflower
是的,唯一一个与$(this)一起使用的解决方案! - Tillito
这有效!谢谢 - Raru
这种方式有助于检查复选框是否已选中,您知道如何选择它,谢谢 - Omar Isaid


以下所有方法都很有用:

$('#checkbox').is(":checked")

$('#checkbox').prop('checked')

$('#checkbox')[0].checked

$('#checkbox').get(0).checked

建议应该避免使用DOMelement或内联“this.checked”,而应该使用jQuery on方法事件监听器。


79
2017-07-13 16:25





要记住关于checked属性的最重要的概念是   它与checked属性不对应。属性   实际上对应于defaultChecked属性,应该使用它   仅设置复选框的初始值。已检查的属性   值不会随复选框的状态而改变,而   已检查的财产。因此,跨浏览器兼容的方式   确定是否选中了复选框是否使用该属性

以下所有方法都是可行的

elem.checked 

$(elem).prop("checked") 

$(elem).is(":checked") 

57
2017-07-09 06:40





用于检查复选框是否已选中的jQuery代码:

if($('input[name="checkBoxName"]').is(':checked'))
{
  // checked
}else
{
 // unchecked
}

或者:

if($('input[name="checkBoxName"]:checked'))
{
    // checked
}else{
  // unchecked
}

57
2017-10-04 10:06



缺少第一个解决方案 :......正确一个是: if(('input[name="checkBoxName"]').is(':checked'))。 - Aerendir


你可以使用这段代码,

if($("#checkboxId").is(':checked')){
     // Code in the case checkbox is checked.
} else {
     // Code in the case checkbox is NOT checked.
}

32
2017-10-07 14:26





你可以试试这个:

<script>
function checkAllCheckBox(value)
{
   if($('#select_all_').is(':checked')){
   $(".check_").attr ( "checked" ,"checked" );
    }
    else
    {
        $(".check_").removeAttr('checked');
    }

 }

</script>
<input type="checkbox" name="chkbox" id="select_all_" value="1" />


<input type="checkbox" name="chkbox" class="check_" value="Apples" />
<input type="checkbox" name="chkbox" class="check_" value="Bananas" />
<input type="checkbox" name="chkbox" class="check_" value="Apples" />
<input type="checkbox" name="chkbox" class="check_" value="Bananas" />

27
2017-07-11 08:43