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 получить кнопку, которая была нажата?
  • Вопрос задан
  • 386 просмотров
Пригласить эксперта
Ответы на вопрос 2
arutyunov
@arutyunov
Mooza.ru — Делаем сайты
У вас с интерфейсом что-то не так, если в 1 форме больше 1 сабмита.
Ответ написан
bitver
@bitver
Как вариант ваш beforeValidate заменить на евент на кнопке, который сделает всё что вам нужно до валидации, а потом вызовет $('#contact-form').yiiActiveForm('validate');
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 20:43
20000 руб./за проект
19 апр. 2024, в 20:11
500 руб./за проект