yii2 ActiveForm 中默认选中的复选框
check box checked by default in yii2 ActiveForm
我有 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)
方法或将 post 数据分配给您的模型。否则您的复选框将随时被选中;
最好的方法是在模型中覆盖 init()
public function init() {
parent::init ();
$this->is_necessary = 1;
}
并且您不需要按照 DOCS
通过 'uncheck'=> 0,
uncheck
: string
, the value associated with the unchecked state of the
radio button. If not set, it will take the default value 0
. This
method will render a hidden input so that if the radio button is not
checked and is submitted, the value of this attribute will still be
submitted to the server via the hidden input. If you do not want any
hidden input, you should explicitly set this option as null.
我有 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)
方法或将 post 数据分配给您的模型。否则您的复选框将随时被选中;
最好的方法是在模型中覆盖 init()
public function init() {
parent::init ();
$this->is_necessary = 1;
}
并且您不需要按照 DOCS
'uncheck'=> 0,
uncheck
:string
, the value associated with the unchecked state of the radio button. If not set, it will take the default value0
. This method will render a hidden input so that if the radio button is not checked and is submitted, the value of this attribute will still be submitted to the server via the hidden input. If you do not want any hidden input, you should explicitly set this option as null.