Событие после валидации формы

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
ddmitrenko
Сообщения: 82
Зарегистрирован: 2015.02.04, 16:31

Событие после валидации формы

Сообщение ddmitrenko »

Здравствуйте. Есть форма с настроенной валидацией. Необходимо при нажатии куда-нибудь вне формы принудительно запускать валидацию и в зависимости от результатов выводить сообщение. При чем при обычном поведении в окне (нажатие Submit) - этого окна быть не должно. Возможно решение вопроса - определять в afterValidation откуда пришел вызов (submit или вызов функции) , но я не знаю как это можно разделить. Помогите!
С уважением, Дмитрий.
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Событие после валидации формы

Сообщение Nex-Otaku »

Либо делаешь экшен в контроллере и аяксом отправляешь форму, либо запускаешь клиентскую валидацию в яваскрипте. Смотря что тебе нужно.
ddmitrenko
Сообщения: 82
Зарегистрирован: 2015.02.04, 16:31

Re: Событие после валидации формы

Сообщение ddmitrenko »

Вот такой код :

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

last_elem.siblings('.short_form').find('form').yiiActiveForm('validate'); 
if (last_elem.siblings('.short_form').find('.field-constant-value').hasClass('has-success')) 
{...}
не отрабатывает из-за ассинхронной работы валидации.
С уважением, Дмитрий.
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Событие после валидации формы

Сообщение Nex-Otaku »

Ну и чем тебя асинхронность смущает? Лови событие "валидация завершена" и вперёд.

Вот доки: https://yii2-cookbook.readthedocs.io/fo ... veform-js/
Найдёшь нужное событие там самостоятельно )

Не умеешь ловить события - погугли "обработка события jQuery".

При любых сомнениях - смотри в код: /vendor/yiisoft/yii2/asets/yii.activeForm.js
Ответить