Javascript 复选框不再检查是否与Jquery切换函数一起使用?

Javascript 复选框不再检查是否与Jquery切换函数一起使用?,javascript,jquery,checkbox,toggle,Javascript,Jquery,Checkbox,Toggle,我有一个复选框,如果选中,应该启用它下面的一些单选按钮 如果复选框未选中,则下面的单选按钮将被禁用,如果选中,则变为未选中 为此,我使用了切换功能: $( "#mycheckbox" ).toggle(function() { $('#radiobuttons input').attr('disabled', false); }, function() { $('#radiobuttons input').attr('disabled', true); $('#radio

我有一个复选框,如果选中,应该启用它下面的一些单选按钮

如果复选框未选中,则下面的单选按钮将被禁用,如果选中,则变为未选中

为此,我使用了切换功能:

$( "#mycheckbox" ).toggle(function() {
    $('#radiobuttons input').attr('disabled', false);
}, function() {
    $('#radiobuttons input').attr('disabled', true);
    $('#radiobuttons input').removeAttr('checked');
});
但是,现在在切换函数中使用了“我的”复选框,它本身不进行检查

为了解决这个问题,我尝试了:

$( "#mycheckbox" ).toggle(function() {
    $('#radiobuttons input').attr('disabled', false);
    $("#mycheckbox").attr('checked','checked');
}, function() {
    $('#radiobuttons input').attr('disabled', true);
    $('#radiobuttons input').removeAttr('checked');
    $("#mycheckbox").removeAttr('checked');
});
但这也不起作用

有人知道怎么解决这个问题吗

小提琴:

Jquery版本:1.4.3

HTML:


在此处标记文本
标准房类别1
标准房类别2
尝试使用.change()而不是toggle()

演示:


注意:仍然没有找到上述行为的原因。

切换功能用于显示和隐藏元素

我的建议是在复选框中添加一个事件处理程序,用于检查复选框是否已选中,然后启用或禁用单选按钮

大概是这样的:

(function () {
    // Store our radio buttons and checkbox:
    var radioButtons = $('#radiobuttons input'),
        checkbox = $('#checkbox');

    // Add an event handler:
    checkbox.on('change', function () {
        // When our checkbox is checked, the radioButtons become active:
        radioButtons.prop('disabled', !checkbox.prop('checked'));
    });
}());

你能分享html吗?你能编辑小提琴来重新创建网页吗issue@ArunPJohny添加了HTML和JQ版本above@ArunPJohny我已经更新了小提琴谢谢,但我不能-我的Jquery版本不支持it@MeltingDog它与jQuery1.4.3一起工作-谢谢-这是一个很好的答案,但是.prop()与我的JQ版本不兼容
var $radios = $('#radiobuttons input');
$("#mycheckbox").change(function (e) {
    $radios.attr('disabled', !this.checked);
    if(!this.checked){
        $radios.removeAttr('checked');
    }
});
(function () {
    // Store our radio buttons and checkbox:
    var radioButtons = $('#radiobuttons input'),
        checkbox = $('#checkbox');

    // Add an event handler:
    checkbox.on('change', function () {
        // When our checkbox is checked, the radioButtons become active:
        radioButtons.prop('disabled', !checkbox.prop('checked'));
    });
}());