jQuery看看是否有任何checkbox被选中

我知道如何查看一个单独的checkbox是否被选中。

但我有麻烦以下 – 给一个表单ID我需要看看是否有任何checkbox被选中(即1或更多),我需要看看是否没有被选中。 基本上我需要两个独立的函数来回答这两个问题。 帮助将不胜感激。 谢谢!

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

你可以使用这样的东西

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

JQuery .is将testing所有指定的元素,并返回true,如果它们中至less有一个匹配select器:

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

你可以这样做:

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

哪里:

  • :checkbox过滤select器选中所有checkbox。
  • :checked将选中checkbox
  • length将给出在那里检查的人数

你可以在这里简单的返​​回.length

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

这个查找给定表单中的checkbox,看是否有:checked ,如果是的话返回true (否则长度为0)。 为了更清楚一点,下面是非布尔转换版本:

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

这将返回一个有多less被检查的计数。

拉胡尔的回答最适合你的问题。 无论如何,如果你有一组checkbox被选中,而不是你表单中的所有checkbox,你可以去做。

为所有你想检查的checkbox添加一个类test_check ,例如,一个类名test_check ,现在你可以检查是否有任何checkbox属于该组:

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

如果它返回true ,则假定一个或多个checkbox被选中,并且类名test_check被选中,如果返回false test_check选中。

希望它可以帮助别人。 谢谢 :)-

这是我用来检查checkbox列表中的任何checkbox是否已经改变:

 $('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 }