如何在jQuery中切换单选按钮组的启用状态?

时间:2011-11-01 22:13:54

标签: jquery

我有一组单选按钮,每个按钮上都有一个“laser2”类。我有一个ID为“duaL-laser”的复选框。我试图用复选框切换单选按钮组的可用性。我知道班级切换工作(用于显示目的)。这是我的代码。

<script type="text/javascript">
$().ready(function() {
    //$('.laser2').attr('disabled', 'disabled');
    $('#dual-laser').click(function() {
        $('div#power-listing2').toggleClass('disable');
        $('.laser2').removeAttr('disabled');
    });
    if ($('#dual-laser').attr('checked', false)) {
        $('.laser2').attr('disabled', true);
    }

});
</script>

当我勾选复选框时,此功能正常。但是当我取消选中该复选框时,单选按钮仍保持启用状态。尽管if语句在代码的底部是真的。是什么给了什么?

1 个答案:

答案 0 :(得分:1)

尝试更改此内容:

if ($('#dual-laser').attr('checked', false)) {
        $('.laser2').attr('disabled', true);
    }

到此:

if ($('#dual-laser').prop('checked')) {
        $('.laser2').attr('disabled', true);
    }

现在你正在设置该属性,我怀疑你想得到它。

<强>更新

此外,上述声明是否应该在您的点击事件中?现在它只是在准备文件时执行。像这样:

$('#dual-laser').click(function() {
        $('div#power-listing2').toggleClass('disable');
        //$('.laser2').removeAttr('disabled');
        $('.laser2').attr('disabled', !$(this).prop('checked'));
    });

更新2

这是一个简化的小提琴,应该做你需要的:http://jsfiddle.net/pHJ5u/3/