Добрый день. Прошу прощения, если тема уже была, найти не смог.
Допустим, на основе модели RegisterForm существует форма регистрации с полями:
+-------------------------------+
| Имя (textInput) |
+-------------------------------+
| Пароль (passwordInput) |
+-------------------------------+
+-+
+-+ Согласен с условиями (checkbox)
Допустим, при отправке формы поля "Имя" и "Согласен с условиями" проходят валидацию, "Пароль" - нет. Как при этом не заполнять провалидированные поля правильными значениями заново? В частности, нужно, чтобы чекбокс при обновлении страницы был "не нажат".
Не заполнять заново поле после ошибки валидации
Re: Не заполнять заново поле после ошибки валидации
Присвойте false после load()
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
Re: Не заполнять заново поле после ошибки валидации
по событию after_validate проверьте и сбросьте
Код: Выделить всё
/**
* Event handler.
*
* @param \yii\base\Event $event
*/
public function handleAfterValidate($event)
{
if ($this->hasErrors()) {
//setting password to empty
if (isset($this->password)) {
$this->password = '';
}
if (isset($this->password_repeat)) {
$this->password_repeat = '';
}
}
}
Re: Не заполнять заново поле после ошибки валидации
Ну, я сделал не очень элегантно:
Всем спасибо!
Код: Выделить всё
...
else
$model->agree = false;
return $this->render('register', [
'model' => $model,
...
]);
...