我正在使用以下代码,它会切换我的复选框,但不正确。
如果已将复选框手动设置为已选中,则会出现问题。
当您运行代码时,它会检查框,但是再次单击它,它只取消选中之前未检查的框。
$(".all").click(function(e) {
var checked = !$(this).data('checked');
$('.trigger').attr('checked', checked);
$(this).data('checked', checked);
});
我使用input type='image'
作为我的元素来运行检查。
<input type="image" class="all" title="All" src="toggle.png"/>
我尝试使用以下内容,但是当它运行时,取消选中复选框,然后删除我用来调用它的图像。
$('.all').toggle(function(){
$('input:checkbox').attr('checked','checked');
},function(){
$('input:checkbox').removeAttr('checked');
})
任何人都可以建议我如何正确地做到这一点。
由于
答案 0 :(得分:0)
如果您想切换,则必须根据“已检查”属性进行选择:
$('.all').click(function(){
var checked = $('input:checkbox').not(':checked');
$('input:checkbox:checked').removeAttr('checked');
checked.attr('checked','checked');
});
我对这一点感到有点困惑'只取消选中之前没有检查的那些' - 你的意思是什么,未经检查的东西不能被取消选中。
这是一个工作小提琴:https://jsfiddle.net/4ckjwv8b/
顺便说一下。如果你只想总是选择一个选项,你可以使用输入类型'radio'。