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

时间:2010-11-03 12:19:36

标签: javascript jquery html-form

我知道如何选择是否选中了某个复选框。

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

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

8 个答案:

答案 0 :(得分:222)

你可以使用这样的东西

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

答案 1 :(得分:26)

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

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

答案 2 :(得分:7)

你可以这样做:

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

其中:

  • :checkbox过滤器选择器会选中所有复选框。
  • :checked将选中已选中的复选框
  • length将提供已检查的数量

答案 3 :(得分:4)

不使用'长度'你可以这样做:

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

答案 4 :(得分:3)

您可以在此处简单地返回.length

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

查看给定表单中的复选框,查看是否有:checked并返回true(如果它们是长度将为0)。为了使它更清晰,这里是非布尔转换版本:

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

这将返回检查的数量。

答案 5 :(得分:3)

Rahul的回答最适合您的问题。无论如何,如果您要检查一组复选框而不是表单中的所有复选框,您可以选择它。

为要检查的所有复选框添加一个类名,例如,类名test_check,现在您可以检查是否选中了属于该组的任何复选框:

$("#formID .test_check:checked").length > 0

如果它返回true,则假设检查了一个或多个具有类名test_check的复选框,如果返回false则不选中。

希望它有所帮助。谢谢:) -

答案 6 :(得分:3)

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

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

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

         //Do something.

});     

答案 7 :(得分:1)

这是解决此问题的最佳方法。

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

  // Do something here /////

  };