Asp.net jQuery递增地计算选中复选框和取消选中复选框的数量

Asp.net jQuery递增地计算选中复选框和取消选中复选框的数量,asp.net,javascript,jquery,Asp.net,Javascript,Jquery,我有一个ASP.NET web表单,它有6个复选框。1复选框是调用一个函数来选择所有复选框,并显示消息“You have selected”6个项目(在本例中为6个复选框)。如果用户没有选中全选复选框,他们可以单独选择或取消选择其他复选框,消息将是“You have selected”#“items”。我正在jQuery中尝试这样做,但它还不能工作。以下是脚本: <script type="text/javascript"> //This function work

我有一个ASP.NET web表单,它有6个复选框。1复选框是调用一个函数来选择所有复选框,并显示消息“You have selected”6个项目(在本例中为6个复选框)。如果用户没有选中全选复选框,他们可以单独选择或取消选择其他复选框,消息将是“You have selected”#“items”。我正在jQuery中尝试这样做,但它还不能工作。以下是脚本:

    <script  type="text/javascript">
    //This function works on the click event of SelectAll checkbox
    function selectAll(involker) {
        $('input:checkbox').attr('checked', $(involker).attr('checked'));

        var count = $(":checkbox:checked").length;
        $("#selectedCheckboxMessage").html(count).css({ 'background-color': '#228B22', 'font-weight': 'bolder', 'color': '#FFFFFF', 'padding-left': '0.5em', 'padding-right': '0.5em' });

    }

    //Not working, the message wont's show up on the click event of the checkbox
    $(function() {

        $("input[id ^= ctl00_ContentPlaceHolder1_dlTimeSheet_ctl]").click(showCheckboxStatus);

    });

    function showCheckboxStatus(evt) {

        var numSelected = $(":checkbox:checked").length;
        $("#selectedCheckboxMessage").html("You have selected " + numSelected).css({ 'background-color': '#228B22', 'font-weight': 'bolder', 'color': '#FFFFFF', 'padding-left': '0.5em', 'padding-right': '0.5em' });

    }

//此功能适用于SelectAll复选框的单击事件
功能selectAll(involker){
$('input:checkbox').attr('checked'),$(involker.attr('checked');
变量计数=$(“:复选框:选中”)。长度;
$(“#selectedCheckboxMessage”).html(count).css({‘背景色’:‘228B22’,‘字体重量’:‘粗体’,‘颜色’:‘FFFFFF’,‘左填充’:‘0.5em’,‘右填充’:‘0.5em’);
}
//不工作,消息不会显示在复选框的单击事件上
$(函数(){
$(“输入[id^=ctl00\u内容占位符1\u dlTimeSheet\u ctl]”。单击(ShowCheckBox状态);
});
功能显示复选框状态(evt){
var numSelected=$(“:复选框:选中”)。长度;
$(“#selectedCheckboxMessage”).html(“您已选择”+numSelected).css({‘背景色’:‘228B22’,‘字体重量’:‘粗体’,‘颜色’:‘FFFFFF’,‘左填充’:‘0.5em’,‘右填充’:‘0.5em’);
}

此消息仅在选中SelectAll复选框时显示。消息不会显示是否选中或取消选中了其他复选框

我查找一个复选框Id$(“输入[Id^=ctl00\u内容占位符1\u dlTimeSheet\u ctl]”),而不是查找CSS类。论加价

<asp:CheckBox ID="cbMarkAsComplete" runat="server" CssClass ="CheckBoxClass"   />

将生成以下HTML输出:

<span class="CheckBoxClass"><input type="checkbox" name="ctl00$ContentPlaceHolder1$dlTimeSheet$ctl00$cbMarkAsComplete" id="ctl00_ContentPlaceHolder1_dlTimeSheet_ctl00_cbMarkAsComplete"></span>

CSS类CheckBoxClass不包含HTML输入,这就是为什么我要查找checkbox Id而不是checkbox类


感谢您的输入。

若要返回页面上选定复选框的数量,请尝试稍微更改选择器并使用类似的方法

$("input[type='checkbox']:checked").length 
这将为您提供选中复选框的数量

$("input:checked").length 

也可以工作,但我是一个特殊的呆子。

您最好使用像
$('.CheckBoxClass-input:checkbox')这样的选择器。

至于你的号码不更新的问题,我看这一行:

var numSelected = $("input.myCheckbox:checked").length;
我在任何地方都看不到.myCheckbox类。试试这个:

var numSelected = $('.CheckBoxClass input:checked').length;

我承认,我读了三遍,但我仍然不明白到底什么在起作用,什么不在起作用。这是选中所有复选框的标记,它正确地显示了消息,但其他复选框不起作用,无论是选中还是取消选中,消息都不会显示。我认为另一个复选框的OnClick事件不起作用。我真的不知道问题出在哪里。