Кнопка "отмена" в AvtiveForm с data-confirm

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Prooksius
Сообщения: 100
Зарегистрирован: 2019.01.17, 23:24

Кнопка "отмена" в AvtiveForm с data-confirm

Сообщение Prooksius »

Всем привет.
Есть страница редактирования, там ActiveForm со стандартной кнопкой Submit типа button.
Рядом с Submit есть также ссылка "Отмена" типа "a" с href, ведущей на другую страницу.
Я делаю так, что если в форме были произведены какие-то изменения, то ссылке "отмена" я присваиваю "data-confirm" с текстом "Вы уверены...?"
И при нажатии на ссылку задается вопрос. Если да - мы переходим на ту другую страницу, если нет - остаемся.
Если же никаких изменений не было - то и data-confirm не выставляю.

Эту страницу я также вызываю и для добавления, не только для изменения данных.

В случае добавления, если я что-то изменил в форме и нажал на отмену - меня спрашивают - "Вы уверены...?" Я отвечаю да. И после этого почему-то идет не переход на другую страницу, а проверка формы и выставление у незаполненных "required"-полей ошибок. Валидация то есть. Переход тупо не происходит.
Не понимаю, для чего и почему?

Получается, мне нужно эту ссылку "отмена" вытащить за пределы формы?
Prooksius
Сообщения: 100
Зарегистрирован: 2019.01.17, 23:24

Re: Кнопка "отмена" в AvtiveForm с data-confirm

Сообщение Prooksius »

Вывел ссылку "отмена" за пределы формы - все стало работать нормально.
Вообщем непонятно, как может простая ссылка запускать валидацию...
То есть без data-confirm - все норм, ссылка работает, как ей и положено. А вот с data-confirm - валидация.
Может есть какая-то настройка формы, которая устраняет эту проблему? Покопался в документации - ничего такого, что бы влияло на это не нашел.
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Кнопка "отмена" в AvtiveForm с data-confirm

Сообщение unknownby »

Стоит посмотреть эти настройки для формы, как вариант

Код: Выделить всё

'validateOnChange'          => false,
'validateOnSubmit'          => true,
Prooksius
Сообщения: 100
Зарегистрирован: 2019.01.17, 23:24

Re: Кнопка "отмена" в AvtiveForm с data-confirm

Сообщение Prooksius »

да смотрел, но они тут как бы в кассу. Мне нужно чтобы валидировалось в этих случаях.
Непонятно, как может переход по ссылке срываться валидацией...
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Кнопка "отмена" в AvtiveForm с data-confirm

Сообщение unknownby »

У меня с такими настройками формы

Код: Выделить всё

	'id' => 'MyId',
        'type' => 'vertical',
        'enableAjaxValidation'      => true,
        'enableClientValidation'    => false,
        'validateOnChange'          => false,
        'validateOnSubmit'          => true,
        'validateOnBlur'            => false,
        'method'                    => 'post',
Кнопка внутри формы

Код: Выделить всё

<?= Html::a(
            '<span class="glyphicon glyphicon-ban-circle"></span><span class="hidden-md hidden-sm hidden-xs">&nbsp;&nbsp;' . Yii::t('main', 'button.cancel') . '</span>',
            Url::toRoute('index'),
            [
                'class' => 'btn btn-default btn-tooltip',
                'title' => Yii::t('main', 'button.cancel'),
                'data-placement' => "top",
                'data-original-title' => Yii::t('main', 'button.cancel'),
                'data'  => [
                    'confirm' => Yii::t('main', 'Are you sure you want to back?'),
                    'method'  => 'post',
                ],
            ]);
        ?>
Все отработало хорошо

Если отвечаешь "Да" уходит со страницы, если "Нет" остаешься на месте.
Последний раз редактировалось unknownby 2020.06.11, 13:39, всего редактировалось 2 раза.
Prooksius
Сообщения: 100
Зарегистрирован: 2019.01.17, 23:24

Re: Кнопка "отмена" в AvtiveForm с data-confirm

Сообщение Prooksius »

аа, единственное, я не указал еще, у меня стандартный confirm-алерт заменен на sweet alert - есть такой JS-плагин хороший.
Видимо, валидация срабатывает когда открывается этот sweetalert-попап. Он добавляется в DOM в конец body, поэтому, видимо, происходит событие формы onBlur.
Но все равно непонятно, почему это останавливает переход по ссылке.
Prooksius
Сообщения: 100
Зарегистрирован: 2019.01.17, 23:24

Re: Кнопка "отмена" в AvtiveForm с data-confirm

Сообщение Prooksius »

Да, видимо вы правы, надо было ставить
'validateOnBlur' => false,
Ответить