2

我有一个带有多项选择字段 A 的表单

<select multiple="multiple" name="A"></select>

和一个布尔复选框 B

<input type="checkbox" name="B" />

如果选中字段 B,我想禁用字段 A。如果字段 B 未选中,我想再次重新启用字段 A。

我试过这个:

$('input[name="B"]').toggle(function() {
    $('select[name="A"]').addClass('uneditable-input').attr('disabled', 'disabled');
}, function() {
    $('select[name="A"]').removeClass('uneditable-input').removeAttr('disabled');
});

但是,这不起作用。相反,它使复选框从我的网页中消失。我怎样才能实现我上面描述的?

4

1 回答 1

3

我怎样才能实现我上面描述的?

而不是toggle,用于click连接(单个)处理程序,然后在处理程序内检查this.checked是否B已检查。

$('input[name="B"]').click(function() {
    if (this.checked) {
        $('select[name="A"]').addClass('uneditable-input').attr('disabled', 'disabled');
    }
    else {
        $('select[name="A"]').removeClass('uneditable-input').removeAttr('disabled');
    }
});
于 2013-02-17T12:10:58.047 回答