我在元素[如<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/
答案 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)
试试这个,
让mycheckbox
和checkbox
为2 classes
click event
为triggered
$(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';
}