Как определить какую кнопку нажали в beforeValidate событии Yii2?
Возникла такая ситуация. Есть форма и 2 кнопки сабмита, которые должны приводить к разному эффекту.
В первом случае все стандартно и событие beforeValidate должно срабатывать в полной мере (там по сути процесс формирования определенного алерта)
Во втором же случае надо отключить этот алерт.
Первое что приходит на ум, это определять какую кнопку нажали в событии beforeValidate формы. Но доступа к такой информации внутри обработчика я не нашел. Это реально?
Если нет, то есть ли другие способы ввести такую условную логику при отправке формы?
Что за алерт? Попапа вам не хватит? Кнопка будет не сабмитом, а триггером окошка. Если нужен именно алерт смотрите в сторону data-confirm и этой темы.
Если хотите координально разделить ещё и логику валидации, то вам лучше отключить beforeValidate по-умолчанию и написать свой обработчик onClick
Т.е. вы предлагаете отказаться от beforeValidate, а делать по клику проверку что за кнопку нажали, а затем на основе этого запускать процесс формирования алерта или нет, ну и делать form.submit() ?
MUTOgen4eg: ну да. Сначала проверить что за кнопка, показать алерт или не показать, а потом инициировать сабмит формы. Дальше уже валидация и сабмит сами пройдут.