选中复选框以选中网格视图中的所有复选框

时间:2014-01-29 12:16:14

标签: jquery asp.net gridview checkbox

我制作了这个简单的代码来检查checkboxes

中的所有gridview
function chkFun() {
        if ($("#chkSelectAll").is(':checked')) {
            $("#grdSearchResults tr").each(function () {
                debugger
                var checkBox = $(this).find("input[id*='chkSelected']");
                $(checkBox).attr("checked", true);
            });
        }
        else {
            $("#grdSearchResults tr").each(function () {
                debugger
                var checkBox = $(this).find("input[id*='chkSelected']");
                $(checkBox).attr("checked", false);
            });
        }
    }

chkFun会在chkAll checkbox OnClicking调用..并且第一次正常工作[选择&取消选择] ..之后它根本不起作用,我不知道为什么。

我尝试调试它,就像你在代码中看到的那样,它在任何地方都是正确的......但这行$(checkBox).attr("checked", false);在第一次之后没有做任何事情

1 个答案:

答案 0 :(得分:4)

使用.prop()代替attr()

function chkFun() {
    if ($("#chkSelectAll").is(':checked')) {
        $("#grdSearchResults tr").find("input[id*='chkSelected']").prop('checked', true);
    } else {
        $("#grdSearchResults tr").find("input[id*='chkSelected']").prop('checked', false);
    }
}

此外,您不需要使用.each(),您可以选择一行

或者你可以将函数绑定到chkSelectAll并使用评论中建议的Satpal代码来缩短代码

$('#chkSelectAll').on('change', function () {
    $("#grdSearchResults tr").find("input[id*='chkSelected']").prop('checked', this.checked)
});