Asp.net jQuery递增地计算选中复选框和取消选中复选框的数量
我有一个ASP.NET web表单,它有6个复选框。1复选框是调用一个函数来选择所有复选框,并显示消息“You have selected”6个项目(在本例中为6个复选框)。如果用户没有选中全选复选框,他们可以单独选择或取消选择其他复选框,消息将是“You have selected”#“items”。我正在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
<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事件不起作用。我真的不知道问题出在哪里。