В yii2, когда используется ajax-валидация, форма блокируется открытие в новом окне по умолчанию, чтобы предотвратить отправку данных на сервер, пока валидация не будет выполнена. Это делается для того, чтобы убедиться, что все данные в форме прошли валидацию перед отправкой.
Однако, если вам все же необходимо разрешить открытие формы в новом окне во время ajax-валидации, можно воспользоваться следующим подходом:
1. Определите в своей форме атрибут target
для открытия формы в новом окне. Например:
$form = ActiveForm::begin([ 'id' => 'my-form', 'options' => ['target' => '_blank'] ]);
2. В вашем Javascript коде, который выполняется после загрузки страницы, позволяет отключить блокировку формы. Например:
$(document).on('beforeValidate', '#my-form', function(event, messages, deferreds) { // Отключение блокировки формы $.yii.activeForm.settings.submitting = false; });
Этот код отключает блокировку формы до ее валидации и позволяет ей отправиться в новом окне, даже если валидация еще не завершена.
Важно отметить, что отключение блокировки формы может означать, что данные будут отправляться на сервер без прохождения валидации. Вы должны быть уверены в том, что ваша форма проходит валидацию корректно, прежде чем позволять открытие в новом окне во время ajax-валидации.