假复选框[带jquery]

时间:2013-06-25 05:38:20

标签: javascript jquery html css

我在元素[如<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中的新功能会点击真正的复选框,然后它的工作正常!

有人吗?任何想法!?

[sry,我的英语很差]

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

5 个答案:

答案 0 :(得分:2)

你在jquery中的选择器是不正确的。 $('mycheckbox')正在您的文档中搜索标记<mycheckbox>,这几乎肯定不存在。

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

$('.mycheckbox').length;
   ^--- CSS class name selector

答案 1 :(得分:1)

使用“更改”代替“点击”。

Exsample: http://jsfiddle.net/E2kjM/3/

答案 2 :(得分:0)

试试这个,

mycheckboxcheckbox为2 classes click eventtriggered

$(function(){ 
    $(".mycheckbox,.checkbox").click(function(){
        alert($(".checkbox:checked").length)); 
    });
});

答案 3 :(得分: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

     });
  }

答案 4 :(得分:0)

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

body {
    counter-reset: checboxes;
}
:checked {
    counter-increment:checboxes;
}
span:after {
    content: counter(checboxes)' checked'; 
}