我有一个带有多项选择字段 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/