@HellWalk

Как создать свое JS-событие при успешной валидации формы?

Работу форм можно описать простыми двумя пунктами:

1. Отправка формы
2. Результат обработки формы

Есть страница, где после обработки формы, на pjax появляется сообщение "ваша заявка отправлена", но есть проблема - от нажатия "отправить" до появления надписи проходит 1-2 секунды, и у посетителя может сложиться впечатление, что ничего не работает.

Необходимо при нажатии "отправить", если js-валидация прошла нормально, форма заменялась loader-картинкой, и затем уже, через 1-2 секунды, сообщением "ваша форма отправлена"

Попытался поискать, где в Yii2 проходит js-валидация формы... убил несколько часов, но так и не разобрался. С другой стороны, даже если найду, что она, к примеру, проходит в yii.validation.js - править то этот файл нельзя, т.к. он нужен для работ со всеми формами.

Кто-нибудь сталкивался с аналогичной задачей? Как решали?
  • Вопрос задан
  • 644 просмотра
Решения вопроса 1
@HellWalk Автор вопроса
Решил задачу таким способом:

window.onload = function(){
        $('#contact_form').on('beforeSubmit', function () {
            alert('Валидация формы прошла успешно');
        });
    };


Не забываем под contact_form указать id конкретно вашей формы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
qonand
@qonand
Software Engineer
Вы можете реализовать этот функционал с помощью js-событий формы
Ответ написан
Комментировать
iparfeon
@iparfeon
Senior php developer
Есть событие afterValidate, проще всего на него повесить.
$('#form').on('afterValidate', function (e) {
    $('#loader').show();
    return true;
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы