0

Students Gridview 在顶部有一个 Check All 复选框,它控制复选框的开/关。我想在学生网格视图中打开和关闭复选框。这是我的代码:

$(document).ready(function () {
    $("#chkAll").click(function () {
        if ($(this).prop("checked") == "checked") {
            $("#<%= gvStudents.ClientID %> :checkbox").not(this).prop("checked", "checked");
        }
        else {
            $("#<%= gvStudents.ClientID %> :checkbox").not(this).prop("checked", "false");
        }    
    });    
});

它曾经在 jQuery 1.4.xx 中工作,但今天我升级到 JQuery 1.8.1,它不再工作了。我需要什么才能让它再次工作?

4

3 回答 3

0

根据您的选择器,您似乎ID对两个checkboxes.

要么给出不同ID的,要么改用class选择器。

于 2012-09-03T11:10:35.777 回答
0

此行返回真假,但没有“检查”,猜猜是这个原因

$(this).prop("checked")

选中/取消选中

$(this).prop("checked",true)  //check
$(this).prop("checked",false) //uncheck
于 2012-09-03T11:30:55.633 回答
0

这就是您所需要的:

$("#chkAll").click(function () {
    var checkAll = $(this).prop("checked");
    $("#<%= gvStudents.ClientID %> :checkbox").not(this).prop("checked", checkAll);
});   

现场示例:http: //jsfiddle.net/3ZfzS/

但为了更直观,您可能应该在未选中一个或多个其他复选框时取消选中“checkAll”复选框。这可以通过以下添加来完成:

$("#<%= gvStudents.ClientID %> :checkbox").not('#chkAll').click(function(){
    var total = $("#<%= gvStudents.ClientID %> :checkbox").not('#chkAll').size();
    var checked = $("#<%= gvStudents.ClientID %> :checkbox").not('#chkAll').filter(':checked').size();
    $("#chkAll").prop("checked",total == checked);
});

现场示例:http: //jsfiddle.net/xV2ej/

于 2012-09-03T11:37:15.630 回答