В модальном окне регистрационная форма заполняю ее и еще не успев нажать на кнопку, она уже летит на сохранения, а когда нажимаю кнопку то пишет Эта почта уже занята, короче говоря, зарегистрированный....
Как сделать что бы регистрация происходила после того как нажали на кнопку и после если все okто форма закрывалась и выскакивала
Yii::$app->session->setFlash('success', 'Письмо с активацией отправлено на емайл <strong>' . Html::encode($user->email) . '</strong> (проверьте папку спам).');
form
<?php $form = ActiveForm::begin([
'id' => 'reg-form',
'enableAjaxValidation' => true,
]); ?>
<?= $form->field($model, 'name')->textInput() ?>
<?= $form->field($model, 'surname')->textInput() ?>
<?= $form->field($model, 'email')->textInput() ?>
<?= $form->field($model, 'password')->passwordInput() ?>
<?= $form->field($model, 'password_repeat')->passwordInput() ?>
<?= Html::submitButton('Зарегистрироваться') ?>
<?php ActiveForm::end(); ?>
controller
public function actionSignUp()
{
$emailActivation = Yii::$app->params['emailActivation'];
$model = $emailActivation ? new Signup(['scenario' => 'emailActivation']) : new Signup();
if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post()) && $model->validate()) {
if ($user = $model->signup()) {
if ($user->status === User::STATUS_ACTIVE) {
if (Yii::$app->getUser()->login($user)) {
return $this->goHome();
}
} else {
if ($model->sendActivationEmail($user)) {
Yii::$app->response->format = Response::FORMAT_JSON;
Yii::$app->session->setFlash('success', 'Письмо с активацией отправлено на емайл <strong>' . Html::encode($user->email) . '</strong> (проверьте папку спам).');
return ActiveForm::validate($model);
} else {
Yii::$app->session->setFlash('error', 'Ошибка. Письмо не отправлено.');
Yii::error('Ошибка отправки письма.');
}
}
} else {
Yii::$app->session->setFlash('error', 'Возникла ошибка при регистрации.');
Yii::error('Ошибка при регистрации');
return $this->refresh();
}
}
return $this->renderAjax('sign-up', ['model' => $model]);
}