jQuery勾选/取消勾选复选框

4
当我点击“问题”时,两个复选框都必须选择/取消选择。 我想多次选择和取消选择复选框。 它只适用于选择然后取消选择(2次),然后不再起作用。
我的代码:
 $(document).ready(function() {
        $('#CHECK-ALL').click(function() {
            if ($(this).is(':checked')) {
                $('#P').attr('checked',true);                
            } else {
                $('#P').attr('checked',false);                
            }
        });
    });
1个回答

15
你使用的方法不正确,你应该使用prop
$(document).ready(function() {
    $('#CHECK-ALL').click(function() {
        if ($(this).is(':checked')) {
            $('#P').prop('checked',true);                
        } else {
            $('#P').prop('checked',false);                
        }
    });
});

您的代码可以简化为

$('#CHECK-ALL').click(function() {
    $('#P').prop('checked', this.checked);                
});
当你设置属性时,它可以正常工作,但它不会改变属性本身,所以下一次检查$(this).is(':checked')仍然是未选中的,因为这检查属性而不是属性值,这就是为什么它不起作用的原因。

我该如何将属性设置为checked="checked",因为现在它不是这样的? - ZeroZek
属性不应该有影响,重要的是设置了属性。 - adeneo
当您将表单发送到PHP文件或控制器时,该值会被标记为“已选中”,对吗? - ZeroZek
是的,当您提交表单时,重要的是属性而不是属性。 - adeneo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接