Javascript jQuery查看是否选中了任何复选框或未选中任何复选框

Javascript jQuery查看是否选中了任何复选框或未选中任何复选框,javascript,jquery,forms,Javascript,Jquery,Forms,我知道如何查看是否选中了单个复选框 但是我有以下问题-给定一个表单id,我需要查看是否选中了任何复选框(即1个或多个),并且我需要查看是否未选中任何复选框。基本上,我需要两个单独的函数来回答这两个问题。我们将不胜感激。谢谢 实际上,我只需要一个函数来告诉我是否没有选择。知道这一点可以回答另一个问题。您可以这样做: if ($('#form_id :checkbox:checked').length > 0){ // one or more checkboxes are chec

我知道如何查看是否选中了单个复选框

但是我有以下问题-给定一个表单id,我需要查看是否选中了任何复选框(即1个或多个),并且我需要查看是否未选中任何复选框。基本上,我需要两个单独的函数来回答这两个问题。我们将不胜感激。谢谢

实际上,我只需要一个函数来告诉我是否没有选择。知道这一点可以回答另一个问题。

您可以这样做:

  if ($('#form_id :checkbox:checked').length > 0){
    // one or more checkboxes are checked
  }
  else{
   // no checkboxes are checked
  }
其中:

  • 过滤器选择器选中所有复选框
  • 将选中复选框
  • 我会告诉你那里有多少被选中的

您可以使用类似的方法

if ($("#formID input:checkbox:checked").length > 0)
{
    // any one is checked
}
else
{
   // none is checked
}

您可以在此处执行以下操作的简单返回:

在给定表单中查找复选框,查看是否有,如果有则返回
true
(否则长度将为0)。为了更清楚一点,这里是非布尔转换版本:

function howManyAreChecked(formID) {
  return $('#'+formID+' input[type=checkbox]:checked').length;
}

这将返回检查了多少个元素的计数。

JQuery
.is
将测试所有指定元素,如果至少有一个元素与选择器匹配,则返回true:

if ($(":checkbox[name='choices']", form).is(":checked"))
{
    // one or more checked
}
else
{
    // nothing checked
}

拉胡尔的回答最适合你的问题。无论如何,如果要选中一组复选框,而不是表单中的所有复选框,则可以选择它

为所有要检查的复选框输入一个类名,例如,一个类名
test\u check
,现在您可以通过以下方式检查是否选中了属于该组的任何复选框:

$("#formID .test_check:checked").length > 0
如果它返回
true
,则假设选中了一个或多个复选框,其中类名为
test\u check
,如果返回
false
,则不选中任何复选框


希望它能帮助别人。谢谢:-

这是我用来检查复选框列表中的任何复选框是否已更改的内容:

$('input[type="checkbox"]').change(function(){ 

        var itemName = $('select option:selected').text();  

         //Do something.

});     

不使用“长度”,您可以这样做:

if ($('input[type=checkbox]').is(":checked")) {
      //any one is checked
}
else {
//none is checked
}

这是解决这个问题的最好办法

  if($("#checkbox").is(":checked")){

  // Do something here /////

  };

$(“#formID input:checkbox:checked”)。这里的长度足够了,too@Damon我猜您的意思是
如果($(“#formID input:checkbox:checked”).length{}
(没有
>0
)就足够了,因为0是一个假值,参见jQuery关于
:checkbox
选择器的说明:
要在现代浏览器中获得更好的性能,请使用[type=“checkbox”]
,参见-same For radiobuttons顺便说一句,
使用[type=“radio”]而不是:radio
尽管
is()
似乎可以工作,如@rahul的回答所示,直接在选择器中选中
:似乎更合适。当“内部回调”时,is()似乎更有用,请参阅。或者我遗漏了什么?不,这和文档中写的差不多——你检查一个元素是否匹配指定的属性。应用它作为过滤器,然后检查结果中是否至少有一项是相同的,但我的时间更长,表现力也不强。+1因为解决方案中的
.is(“:checked”)
更具表现力,但不确定其余部分。即
$(“表单输入[type=checkbox]”)。is(“:checked”)
可能是一种更简单、更通用的方法。@AdrienBe使用
is
可能会有更好的性能,因为它一找到就会停止。jQuery说关于
:复选框
选择器:
要在现代浏览器中获得更好的性能,请使用[type=“checkbox”]
,请参阅相关内容嘿,欢迎使用StackOverflow。也许你可以多描述一下你的答案,因为不清楚为什么这是解决问题的“最佳方式”。
  if($("#checkbox").is(":checked")){

  // Do something here /////

  };