【发布时间】:2019-10-17 04:10:15
【问题描述】:
我想在yii2中实现问题的解决方案:jQuery - checkbox enable/disable,只是逆向结合DB。反转意味着:我有一些复选框,如果选中 irep 复选框,则应禁用所有其他复选框,否则应启用它们。所以我交换了$("input.irep").attr("disabled", true); 和$("input.irep").removeAttr("disabled");。
irep 存储在 db 中(作为 bool/tinyint 值 1),如果我打开表单,即使我添加 @987654326,应该禁用的字段仍将启用@给它。如果我删除 else 它几乎可以,但取消选中不会重新启用其他复选框。你能指出我正确的方向吗?谢谢。
表格:
$script = <<< JS
$(function() {
enable_cb();
$("#irep").click(enable_cb);
});
function enable_cb() {
if (this.checked) {
$("input.irep").attr("disabled", true);
} else {
$("input.irep").removeAttr("disabled");
}
}
JS;
$this->registerJs($script);
<?= $form->field($model, 'irep')->checkbox(['id' => 'irep']) ?>
<?= $form->field($model, 'intfg')->checkbox(['class' => ['irep'], 'disabled' => $model->irep]) ?>
<?= $form->field($model, 'extfg')->checkbox(['class' => ['irep'], 'disabled' => $model->irep]) ?>
【问题讨论】:
-
check和un-check复选框是另一回事,禁用输入是另一回事,添加代码以显示您实际在做什么,除了设置之外,您无需为此做任何事情使用activeCheckboxList选择正确值的复选框 -
我不希望其他复选框被选中或取消选中,只是被启用或禁用。
标签: javascript jquery yii2