我正在尝试使用一个复选框来检查/取消选中所有其他复选框。
我正在使用此代码:
$("#checkall").toggle(
function () {
$(".kselItems").attr('checked', 'checked');
},
function () {
$(".kselItems").removeAttr("checked");
});
这样可以正常工作,但出于某种原因,带有checkall
标识符的复选框(应该使每件事都能正常工作)永远不会被检查。
如何解决这个问题?
答案 0 :(得分:7)
保持简单。试试这个
$("#checkall").click(function() {
$(".kselItems").attr('checked', this.checked);
});
答案 1 :(得分:2)
尝试过滤掉选择器中的复选框。
$("#checkall").toggle(
function () {
$(".kselItems:not(#checkall)").attr('checked', 'checked');
},
function () {
$(".kselItems:not(#checkall)").removeAttr("checked");
});
答案 2 :(得分:0)
编辑:当我写的时候,xeno06也回答了:)
当您单击“checkall”时,它1)将值设置为选中,然后2)调用切换功能,该功能将找到“checkall”,并将其重新设置回来。
最好的方法是不将“.kselItems”类放到“checkAll”中,或者如果“checkall”在“.ksleItems”中,请使用
$(".kselItems not(#checkall)").(...)
或
$(".kselItems").not("#checkall").(...)
为了清楚起见,我会使用naveen解决方案
$("#checkall").click(function() {
$(".kselItems :checkbox").not("#checkall").attr('checked', this.checked);
});
答案 3 :(得分:0)
你可以试试这个
$("#checkall").click(function() {
$(".kselItems").prop('checked', this.checked);
});