checkbox - Yii2:选中复选框后显示字段/复选框
问题描述
我的 _form 视图中有一个 ActiveForm:
<?php $form = ActiveForm::begin(); ?> <?= $form->field($model, 'isInternal')->checkbox() ?> <?php ActiveForm::end(); ?>
('isInternal' 是一个布尔值)
如果选中该复选框,我想显示另一个复选框:
$form->field($model, 'activateReminder')->checkbox();
有没有可能?也许像这样的JavaScript?
<?= $form->field($model, 'isInternal')->checkbox(['onclick' =>
'showInternDetails()']) ?>
<script>
function showInternDetails() {
$model->isInternal = 1;
}
</script>
<?php
if($model->isInternal == true)
{
$form->field($model, 'activateReminder')->checkbox();
}
?>
解决方案
您可以在您声明的模型中使用when
andwhenClient
选项rules
,以便在模型端创建或更新两者时它可以工作,以要求并向用户显示错误,他需要选择复选框的值并显示并同时隐藏activateReminder
。
因此,进入您正在使用此表单的模型并添加如下规则。
public function rules(){
return [
[['activateReminder'],'required','when'=>function($model){return ($model->isInternal);},
'whenClient'=>'function(attribute,value){
if($("#'.\yii\helpers\Html::getInputId($this, 'isInternal').'").val()===1){
$("#'.\yii\helpers\Html::getInputId($this, 'activateReminder').'").show();
return true;
}else{
$("#'.\yii\helpers\Html::getInputId($this, 'activateReminder').'").hide();
}
}']
];
}
推荐阅读
- mongodb - 使用官方或 bitnami mongodb docker 镜像为 arm64 raspberry pi 4 构建 mongodb docker 镜像
- r - 使用 R 或 RStudio 从(子)网站中提取数据
- django - 在 django 模板中无法在 if 块中显示内容
- microsoft-graph-api - 使用 GraphServiceClient 的字典是线程安全的吗?
- mongodb - 聚合函数两个匹配查找 mongodb
- python - 预处理推文,删除 @ 和 # ,消除停用词并从 python 列表中删除用户
- reactjs - 如何典型化嵌套对象?
- android - 获取第二个 Onclicklistener 值
- c# - 绘制 Windows 10 字幕按钮的问题
- typescript - Typescript 可以根据字段存在(未定义/不存在)而不是值来保护/区分吗?