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 }