Валидация ajaxForm

Есть простой код, взят из документации
Версия ajaxForm 1.1.7
$(document).on('submit', '.removeTest', function() {
        // Здесь любой код для проверки формы при отправке
        // Я просто печатаю её в консоли бразуреа
        console.log(this);

        // Результатом работы будет выставление глобальной переменной
        afValidated = false; // Или true, если валидация пройдена
    });
Но отправка формы все равно происходит, к консоли форму выводит… в чем может быть причина?
Владимир Бабусенко
20 июля 2017, 12:09
modx.pro
1 176
0

Комментарии: 5

Алексей Ерохин
20 июля 2017, 16:01
0
$(document).on('submit', '.removeTest', function(event) {
	//отменяем стандартное поведение браузера
	event.preventDefault();
        // Здесь любой код для проверки формы при отправке
        // Я просто печатаю её в консоли бразуреа
        console.log(this);

        // Результатом работы будет выставление глобальной переменной
        afValidated = false; // Или true, если валидация пройдена
    });
    Владимир Бабусенко
    20 июля 2017, 16:12
    0
    //отменяем стандартное поведение браузера
    event.preventDefault();

    Не помогло, при размещении в ресурсе только отрабатывает (без event), при размещении в подключеном js не работает (что с event, что без него). Ладно, оставлю в ресурсе, где формы....., это не принципиально… Спасибо!
      Сергей Шлоков
      20 июля 2017, 16:41
      0
      Предположу, что скрипт с кодом валидации подключается после скрипта ajaxForm.
        Владимир Бабусенко
        20 июля 2017, 18:28
        0
        Увы, но тоже нет… мой js файл выше. А скрипты ajaxForm подключаются и прописываются вроде динамически в конце страницы, если мы говорим про вот этот скрипт /assets/components/ajaxform/js/default.js
          Сергей Шлоков
          20 июля 2017, 21:28
          0
          event.preventDefault() отменяет стандартное действие, т.е. в твоем обработчике отменится сабмит формы. Но если на событие навешано несколько обработчиков, то они все сработают. Т.е. в другом обработчике события submit форма засобмитится. Чтобы отменить остальные обработчики, нужно добавить event.stopImmediatePropagation().

          Но в данном случае, я бы подебажил, чтобы разобраться, почему не работает стандартный функционал ajaxForm — в файле default.js проверил бы глобальную переменную afValidated.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    5