协慌网

登录 贡献 社区

检查是否使用 jQuery 选中了复选框

如何检查复选框数组中的复选框是否使用复选框数组的 ID 进行检查?

我使用以下代码,但无论 id 如何,它总是返回已选中复选框的计数。

function isCheckedById(id) {
  alert(id);
  var checked = $("input[@id=" + id + "]:checked").length;
  alert(checked);

  if (checked == 0) {
    return false;
  } else {
    return true;
  }
}

答案

$('#' + id).is(":checked")

如果选中该复选框,则会得到。

对于具有相同名称的复选框数组,您可以通过以下方式获取已检查的复选框列表:

var $boxes = $('input[name=thename]:checked');

然后循环浏览它们,看看你能做什么检查:

$boxes.each(function(){
    // Do stuff here with this
});

要查找检查的数量,您可以执行以下操作:

$boxes.length;

ID 必须在您的文档中是唯一的,这意味着您不应该这样做:

<input type="checkbox" name="chk[]" id="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" id="chk[]" value="Bananas" />

而是删除 ID,然后按名称或包含元素选择它们:

<fieldset id="checkArray">
    <input type="checkbox" name="chk[]" value="Apples" />

    <input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>

现在 jQuery:

var atLeastOneIsChecked = $('#checkArray:checkbox:checked').length > 0;
//there should be no space between identifier and selector

// or, without the container:

var atLeastOneIsChecked = $('input[name="chk[]"]:checked').length > 0;
$('#checkbox').is(':checked');

如果选中复选框,则上面的代码返回 true,否则返回 false。