javascript - 禁用基于另一个字段的表单字段不起作用

标签 javascript jquery html forms

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

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

和一个 bool 复选框 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');
});

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

最佳答案

How can I achieve what I described above?

不要使用切换,而是使用 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');
    }
});

关于javascript - 禁用基于另一个字段的表单字段不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14920904/

相关文章:

javascript - AJAX 从选定的下拉列表中获取数据并给出结果 PHP

javascript - 很好地显示数值

jquery - 使用 css 完整加载外部文件?

jquery - 使用 jquery 抓取使用 ajax 创建的元素

javascript 输入值在赋值后为空

javascript - 使用 jQuery 和 Bootstrap-Typeahead 创建自定义 Type-Head?

jquery - Joomla 的模态窗口删除 id 和类名

html - 有效的 CSS/HTML 有什么意义?

javascript - 合并两个 HTML 文件

javascript - 更改 div 焦点上的链接背景