Задать вопрос
kimono
@kimono
Web developer

Как узнать какой сабмит формы был нажат?

Есть форма. Есть плагин LaddaButtons lab.hakim.se/ladda. Есть javascript-код:
// Form submit
    $(document).on('beforeValidate', 'form', function (event, messages, deferreds) {
        var btn = $(this).find('[type=submit]');
        btn.ladda();
        btn.ladda('start');
    }).on('afterValidate', 'form', function (event, messages, errorAttributes) {
        if (errorAttributes.length) {
            var btn = $(this).find('[type=submit]');
            btn.ladda('stop');
            alert('Сначала исправьте ошибки формы!');
        }
    }).on('beforeSubmit', 'form', function (event) {
        var btn = $(this).find('[type=submit]');
        btn.ladda('start');
    });
    Ladda.bind('.ladda-button');

Для тех кто не хочет переходить по ссылке, объясняю как это работает: при нажатии на submit формы, кнопка submit дезактивируется и внутри нее крутится колесико.
Все было нормально, но я не учел вот что: когда в форме несколько сабмитов, то все они анимируются таким образом, что как бы не вполне корректно. Корректно было бы дезактивировать все сабмиты, но колесико прикрутить только на тот сабмит, который был нажат.
Как в yii.activeForm.js при событии beforeValidate получить кнопку, которая была нажата?
  • Вопрос задан
  • 407 просмотров
Подписаться 1 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 2
arutyunov
@arutyunov
Mooza.ru — Делаем сайты
У вас с интерфейсом что-то не так, если в 1 форме больше 1 сабмита.
Ответ написан
bitver
@bitver
Как вариант ваш beforeValidate заменить на евент на кнопке, который сделает всё что вам нужно до валидации, а потом вызовет $('#contact-form').yiiActiveForm('validate');
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы