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

IT技术 javascript jquery forms
2021-03-05 18:49:41

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

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

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

6个回答

你可以使用这样的东西

if ($("#formID input:checkbox:checked").length > 0)
{
    // any one is checked
}
else
{
   // none is checked
}
$("#formID input:checkbox:checked").length 在这里也足够了
2021-04-21 18:49:41
@Damon 我猜你的意思是if ($("#formID input:checkbox:checked").length){}(没有>0)就足够了,因为 0 是一个假值,请参阅james.padolsey.com/javascript/truthy-falsey
2021-05-07 18:49:41
jQuery 说关于:checkbox选择器:For better performance in modern browsers, use [type="checkbox"],请参阅api.jquery.com/checkbox-selector -单选按钮 btw 相同,use [type="radio"] rather than :radio api.jquery.com/radio-selector
2021-05-07 18:49:41

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

if ($(":checkbox[name='choices']", form).is(":checked"))
{
    // one or more checked
}
else
{
    // nothing checked
}
不,这几乎是在文档中写的 - 您检查元素是否与指定的属性匹配。应用它作为过滤器,然后检查你是否至少得到一个结果是相同的,但更久而且没有那么富有表现力。
2021-04-21 18:49:41
+1 因为.is(":checked")您的解决方案更具表现力,但不确定其余部分。
2021-04-24 18:49:41
$("form input[type=checkbox]").is(":checked")可能是一种更简单和更通用的方法。
2021-05-08 18:49:41
@AdrienBe Usingis可能会带来更好的性能,因为它一找到就停止。
2021-05-08 18:49:41
尽管is()似乎有效,:checked但如@rahul 的回答所示直接在选择器中使用似乎更合适。is() 在“内部回调”时似乎更有用,请参阅api.jquery.com/is或者我错过了什么?
2021-05-19 18:49:41

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

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

你可以这样做:

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

在哪里:

  • :checkbox 过滤器选择器选择所有复选框。
  • :checked 将选择选中的复选框
  • length 将给出那里检查的数量
jQuery 说关于:checkbox选择器:For better performance in modern browsers, use [type="checkbox"],请参阅api.jquery.com/checkbox-selector
2021-04-24 18:49:41

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

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

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

         //Do something.

});