我试图在选中复选框时禁用字段集中的 2 个选择字段。我也尝试过像 getElementById
或 getElementsByTagName
或 .attr()
这样的方法,但它不起作用..
我希望在选中时将 disabled
添加到 fieldset
中:
<fieldset id="test" disabled>
<div class="col-lg-6">
<?php echo $this->Form->input('frequency_remarks'); ?>
</div>
<div class="col-lg-6">
<?php echo $this->Form->input('duration_remarks'); ?>
</div>
</fieldset>
复选框:
<div class="checkbox">
<label for="CommentFrequencyOk">
<input type="hidden" name="data[Comment][frequency_ok]" id="CommentFrequencyOk_" value="0" />
<input type="checkbox" name="data[Comment][frequency_ok]" class="checkbox" value="1" id="CommentFrequencyOk" /> Frequency
</label>
</div>
脚本:
$('#CommentFrequencyOk').checked(function () {
$('#test').setAttribute('disabled');
});
最佳答案
建议:
- 使用
on('change')
绑定(bind)事件,checked()
不是有效事件 - 使用
prop
设置disabled
状态 - 使用复选框的
checked
属性改变fieldset
的状态 - 您不能在 jQuery 对象上调用 Vanilla Javascript 方法,请使用 jQuery 方法。前任。
attr()
而不是$('#test')
上的
setAttribute
$('#CommentFrequencyOk').on('change', function() {
$('#test').prop('disabled', this.checked);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<fieldset id="test">
<div class="col-lg-6">
<input id="frequency_remarks" />
</div>
<div class="col-lg-6">
<input id="duration_remarks" />
</div>
</fieldset>
<div class="checkbox">
<label for="CommentFrequencyOk">
<input type="hidden" name="data[Comment][frequency_ok]" id="CommentFrequencyOk_" value="0" />
<input type="checkbox" name="data[Comment][frequency_ok]" class="checkbox" value="1" id="CommentFrequencyOk" />Frequency
</label>
</div>
关于javascript - 禁用选中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32307584/