检查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;
    }
}
JinJinLEY2020/03/09 23:03:11

我知道OP需要jquery,但就我而言,纯JS是答案,因此,如果像我这样的人在这里并且没有jquery或不想使用它-这是JS答案:

document.getElementById("myCheck").checked

如果选中了ID为myCheck的输入,则返回true;否则,返回false。

就那么简单。

GreenSamA2020/03/09 23:03:11

您可以通过jquery使用以下任何推荐代码。

if ( elem.checked ) {};
if ( $( elem ).prop( "checked" ) ) {};
if ( $( elem ).is( ":checked" ) ) {};
老丝乐2020/03/09 23:03:11

根据jQuery 文档,有以下方法可以检查复选框是否被选中。让我们考虑一个复选框(例如,使用所有示例检查“工作jsfiddle”

<input type="checkbox" name="mycheckbox" id="mycheckbox" />
<br><br>
<input type="button" id="test-with-checked" value="Test with checked" />
<input type="button" id="test-with-is" value="Test with is" />
<input type="button" id="test-with-prop" value="Test with prop" />

示例1-选中

$("#test-with-checked").on("click", function(){
    if(mycheckbox.checked) {
        alert("Checkbox is checked.");
    } else {
        alert("Checkbox is unchecked.");
    }
}); 

示例2-使用jQuery时,注意-:选中

var check;
$("#test-with-is").on("click", function(){
    check = $("#mycheckbox").is(":checked");
    if(check) {
        alert("Checkbox is checked.");
    } else {
        alert("Checkbox is unchecked.");
    }
}); 

示例3-使用jQuery prop

var check;
$("#test-with-prop").on("click", function(){
    check = $("#mycheckbox").prop("checked");
    if(check) {
         alert("Checkbox is checked.");
    } else {
        alert("Checkbox is unchecked.");
    }
}); 

检查工作jsfiddle

Davaid泡芙2020/03/09 23:03:11

要记住的有关选中属性的最重要概念是,它与选中属性不对应。该属性实际上对应于defaultChecked属性,并且仅应用于设置复选框的初始值。选中的属性值不会随着复选框的状态而改变,而选中的属性会改变。因此,确定是否选中复选框的跨浏览器兼容方法是使用属性

以下所有方法都是可能的

elem.checked 

$(elem).prop("checked") 

$(elem).is(":checked")