1

我在元素 [like] 中创建了一些假复选框<span>(在真正的复选框之后)它们工作正常!我想要的是,当一个复选框被点击(选中)时,我如何计算选中的复选框;

我知道一些方法,比如:

$(".elm:checked").length;

但它不能正常工作!

我有以下代码用于计算选中的复选框,例如:

    $(document).ready(function(){

        $(".mycheckbox").click(function(){

    $(".checkbox").click(function(){

    alert($(".checkbox:checked").length)); // returns : if check box is checking return 0, if remove checked it returns 1 , its incorrect ! should be if checking return 1 else return 0

    });


    });
}

而且我知道它是因为我的假复选框,当用户单击假复选框时,jquery 中的一个新功能将单击真正的复选框,然后它就可以正常工作了!

任何人 ?任何想法!?

[对不起,我的英语很差]

jsfiddle:http: //jsfiddle.net/E2kjM/2/

4

5 回答 5

2

您在 jquery 中的选择器不正确。$('mycheckbox')正在搜索<mycheckbox>您的文档中的标签,该标签几乎可以肯定不存在。

我认为你的假复选框是通过<span>元素上的 CSS 类名完成的,例如<span class="mycheckbox">,在这种情况下你需要做

$('.mycheckbox').length;
   ^--- CSS class name selector
于 2013-06-25T05:41:50.310 回答
1

使用“更改”而不是“单击”。

Exsample: http://jsfiddle.net/E2kjM/3/
于 2013-06-25T06:29:22.903 回答
0

计数器 CSS 也可能这样做: http ://codepen.io/gcyrillus/pen/mshLl

body {
    counter-reset: checboxes;
}
:checked {
    counter-increment:checboxes;
}
span:after {
    content: counter(checboxes)' checked'; 
}
于 2013-06-25T05:55:33.727 回答
0

尝试这个,

mycheckboxand checkboxare 2 classesfor whick the click eventistriggered

$(function(){ 
    $(".mycheckbox,.checkbox").click(function(){
        alert($(".checkbox:checked").length)); 
    });
});
于 2013-06-25T05:41:17.383 回答
0

为什么你在另一个点击处理程序中有点击处理程序。尝试使用trigger()并且没有标签mycheckbox,所以我想您在那里缺少一些选择器。假设它是一个类。.

尝试这个

 $(document).ready(function(){

    $(".mycheckbox").click(function(){
        $("checkbox").trigger('click');
    });
     $("checkbox").click(function(){

      alert($("checkbox:checked").length)); // returns : if check box is checking return 0, if remove checked it returns 1 , its incorrect ! should be if checking return 1 else return 0

     });
  }
于 2013-06-25T05:42:14.897 回答