Jquery复选框上的问题切换与按钮

时间:2014-03-04 00:00:27

标签: jquery

请您查看This Demo,让我知道为什么toggle在检查和取消选中复选框时效果不佳?

这是我的代码:

$(document).ready(function(){   
    $('.checker').toggle(
        function () { 
            $('#check').attr('Checked','Checked'); 
        },
        function () { 
            $('#check').removeAttr('Checked'); 
        }
    );
});

由于

4 个答案:

答案 0 :(得分:2)

由于您正在寻找切换已检查状态,因此无需使用.toggle()。同时使用.prop()代替.attr()来设置已检查状态

$(document).ready(function () {
    $('.checker').click(function () {
        $('#check').prop('checked', function (i, checked) {
            return !checked
        });
    });
});

演示:Fiddle

在jQuery 1.9中删除了

.toggle(),所以最好不要再使用它了

答案 1 :(得分:1)

试试这个

$(document).ready(function(){   
    $('.checker').toggle(
        function () { 
            $('#check').attr('Checked','Checked'); 
        },
        function () { 
            $('#check').prop('checked', false)
        }
    );
});

更新了小提琴:http://jsfiddle.net/57aq6/

礼貌地提出这个问题:Remove attribute "checked" of checkbox

答案 2 :(得分:1)

现在它工作了我已经更新了,问题出在属性Checked和HTML中的错误中:

<强>的jQuery

$(document).ready(function(){   
    $('.checker').toggle(
        function () { 
            $('#check').attr('checked','checked'); 
        },
        function () { 
            $('#check').removeAttr('checked'); 
        }
    );
});

这是另一个涵盖问题的答案

Jquery Toggle Checkbox

答案 3 :(得分:1)

其实我不知道这段代码有什么问题,但我用它来做这项工作的是:

    $('#check').attr('Checked',true); 


    $('#check').attr('Checked',false);

它运作得很好。