第一次检查时,Jquery不会计算复选框

时间:2014-03-24 12:57:19

标签: jquery checkbox

我的Jquery脚本有问题,它必须计算选中的复选框,但它不会在第一次点击时计数,所以我再次检查 - 取消选中 - 以便计算。它仅在firefox`

中正确计算
   $("#collapseOne input[type=checkbox]").click(function( event ) {  
    var max = 3;  
    var checkboxes = $('#collapseOne
    input[type="checkbox"]');

  checkboxes.change(function(){
      var current = checkboxes.filter(':checked').length;  $( "#col1" ).text(current);
      checkboxes.filter(':not(:checked)').prop('disabled', current >= max); });

http://jsfiddle.net/nm8T9/

2 个答案:

答案 0 :(得分:3)

无需点击处理程序

var max = 3;
var checkboxes = $("#collapseOne input[type=checkbox]");
checkboxes.change(function(){
    var current = checkboxes.filter(':checked').length;
    $( "#col1" ).text(current) ;
    checkboxes.filter(':not(:checked)').prop('disabled', current >= max);
});

演示:Fiddle

查看this demo

您的点击处理程序将导致注册no-of-clicks - 1更改处理程序执行

答案 1 :(得分:0)

您正在点击处理程序中注册change事件,这不会自动执行,您应该在DOM Ready上分配change事件处理程序。

jQuery:JSFiddle

var max = 3;
var checkboxes = $("#collapseOne input[type=checkbox]");
checkboxes.change(function(){
    var current = checkboxes.filter(':checked').length;
    $( "#col1" ).text(current) ;
    checkboxes.filter(':not(:checked)').prop('disabled', current >= max);
});