2013-08-22 65 views
0

我使用下面的jQuery显示所选计数复选框,显示值

$(document).ready(function(){ 
    $('.check:button').toggle(function(){ 
     $('input:checkbox').attr('checked','checked'); 
    var count = $("input[type=checkbox]:checked").size(); 
     $(this).val('uncheck all') 
     $("#count").text(count+ " item(s) selected"); 
    },function(){ 
     $('input:checkbox').removeAttr('checked'); 
     var count = $("input[type=checkbox]:checked").size(); 
     $(this).val('check all'); 
     $("#count").text(count+ " item(s) selected"); 
    }) 
}) 

这里所选号码复选框是HTML

<input type="button" class="check" value="check all" /> 
<input type="checkbox" class="cb-element" /> Checkbox 1 
<input type="checkbox" class="cb-element" /> Checkbox 2 
<input type="checkbox" class="cb-element" /> Checkbox 3 

<p id="count"></p> 

当我检查所有它显示了正确的数字,就像选择了3个项目,当我取消全选,然后显示选择的项目。

但是,当我删除单个选定的复选框,然后计数不显示。如果我删除一个,那么计数仍然是3,而不是2.

我该如何做到这一点?

+0

jQuery的版本? –

+0

代码是否与您在问题中所描述的完全相同?因为它似乎不工作:http://jsfiddle.net/yDSBs/ –

+0

工作演示 - > http://jsfiddle.net/CSBDS/ –

回答

1

尝试:检查伪类:使用

$("input[type=checkbox]").click(function() { 
    $("#count").html($("input[type=checkbox]:checked").length); 
}); 
+0

我应该在dom就绪函数内添加下面的代码吗? – sammry

+0

是的,一旦DOM准备就绪,它会将点击监听器连接到所有的复选框。 – Sgoldy

+0

对不起,我试过你的标记和其他答案,因为它已经出现在你的位置,http://jsfiddle.net/sammry/y82Wz/ – sammry

1

试试这个代码,检查api要了解详情,

var countChecked = function() { 
    var n = $("input:checked").length; 
    $("p").text(n + (n === 1 ? " is" : " are") + " checked!"); 
}; 
countChecked(); 
$("input[type=checkbox]").on("click", countChecked); 
0
$("input:checkbox:checked").length; 

DEMO

$("input:checkbox").change(function() { 
    $('#count').text($("input:checkbox:checked").length); 
}); 
+0

@sammry发生了什么?检查 - > http://jsfiddle.net/CSBDS/ –

0
var count = 0; 
$('input[type=checkbox]').each(function() { 
     if (this.checked) { 
      count++; 
     } 
}); 
alert(count); 
0
$("input[type=checkbox]").click(function(){ 

     $('#count').html($("input[type=checkbox]:checked").length); 
}); 
0

这是给你的计数:

$('input:checkbox').on('change', function(){ 
    $('#count').html($('input:checkbox:checked').size()); 
}); 

jsFiddle

+0

即使在jsfiddle上它也不会与你的代码一起工作 – sammry

+0

@sammry它工作正常。试图在我的小提琴上点击CB-s?我的示例代码中没有使用checkall按钮... –