我有
ActiveForm
复选框:
<?= $form->field($model, 'is_necessary')->checkbox(['uncheck'=> 0]) ?>;
我想让它默认选中,当我选中时,它的值变成1,当取消选中时 - 0。我可以在没有任何
javascript
的情况下实现这一点吗?
我试过了:
<?= $form->field($model, 'is_necessary')->checkbox(['uncheck'=> 0, 'value'=>false]) ?>;
选项
'value'=>false
默认选中我的复选框,但随后在控制器中我收到NULL
,也不是1
或0
。
只需在您的控制器或视图中添加以下代码(不推荐)
$model->is_necessary = true;
上面的代码工作正常。但你应该在
之前添加此代码$model->load(Yii::$app->request->post)
方法或将发布数据分配给您的模型。否则您的复选框将随时被选中;
最好的方法是在模型中覆盖
init()
public function init() {
parent::init ();
$this->is_necessary = 1;
}
并且您不需要按照
'uncheck'=> 0,
通过 DOCS
:uncheck
,与未选中状态相关的值 单选按钮。如果不设置,则采用默认值string
。这 方法将渲染一个隐藏的输入,这样如果单选按钮没有 检查并提交后,该属性的值仍然是 通过隐藏输入提交给服务器。如果你不想要任何 隐藏输入,您应该明确将此选项设置为空。0