选择单选按钮时,选中并禁用复选框

时间:2012-04-27 14:23:30

标签: jquery html-form

我还在学习jquery,但这就是我想要的

如果选择了值为“16”的单选按钮,我想要选中课程新闻稿的复选框,然后无法取消选中。

如果取消选择值为16的单选按钮,我希望能够再次使用该复选框。

2 个答案:

答案 0 :(得分:2)

没有看到你的HTML,我假设一个简单的案例。这里有一些简短的jQuery来做你要求的:

$('input[type="radio"]').click(function() {
    $('input.newsletter').attr({
        'checked': $(this).val() == 16,
        'disabled': $(this).val() == 16
    });
});​

<强> jsFiddle example

答案 1 :(得分:0)

$("input[type=radio][name=<your radio button set name here>]").changed( function () {
    if ($("input[type=radio][name=<your radio button set name here>]").val() == "16") {
        $("input[type=checkbox].newsletter").attr('checked', 'checked');
        $("input[type=checkbox].newsletter").attr('disabled', 'disabled'); //this is one way to make it not unselectable
    }
    else {
        $("input[type=checkbox].newsletter").removeAttr('disabled');
    }
}

另一种使其无法取消选择的方法是在if下面的第{2}位(旁边有注释的那一行)放置stayChecked = true;并放置{{ 1}}代替stayChecked = false;。然后创建另一个函数,如下所示:

$(...).removeAttr('disabled');

注意:你应该在公共级别上的两个函数之外的某个地方声明$("input[type=checkbox].newsletter").changed( function () { if (stayChecked) { $(this).attr('checked', 'checked'); } }); (例如在脚本级别或父函数内部,如果它们在内部声明,比如说,$(document).ready ()函数)。