Jquery - 发出切换复选框

时间:2017-03-14 14:20:14

标签: jquery checkbox

我正在使用以下代码,它会切换我的复选框,但不正确。

如果已将复选框手动设置为已选中,则会出现问题。

当您运行代码时,它会检查框,但是再次单击它,它只取消选中之前未检查的框。

$(".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');
})

任何人都可以建议我如何正确地做到这一点。

由于

1 个答案:

答案 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'。