Задать вопрос
@python-architect

Как решить проблему с ReferenceError: event is not defined в Firefox при использовании jquery.validate?

Формы создаются динамически. Для них назначаются обработчики функцией desFormAction($from). Для проверки вводимых данных используется jquery.validate.
В хроме все без проблем работает. Файрфокс выдает ошибку ReferenceError: event is not defined.

function desFormAction($myfrom){
    $myform.validate({
        rules: validationRm['rules'],
        messages: validationRm['messages'],
        submitHandler: function() {
            event.preventDefault();
            //...
            $.ajax({
                //...
            })
        }
    });
}


Нашел такое решение:
stackoverflow.com/questions/4585970/jquery-event-p...
Попытался по аналогии сделать так:

function desFormAction($myfrom){
    $myfrom.children('input[type=submit]').click(function(event){
        event.preventDefault();
        $myfrom.validate({
            rules: validationRm['rules'],
            messages: validationRm['messages'],
            submitHandler: function() {
                //...
                $.ajax({
                    //...
                })
            }
        });
    })
}

Так совсем не работает. (события уходят в validate, а там хрен разберешь, что происходит)
  • Вопрос задан
  • 11605 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
Решения вопроса 1
@python-architect Автор вопроса
Проблема решилась неожиданно для меня. При использовании jquery.validate, вам не нужно явно указывать event.preventDefault(). За вас это уже сделал плагин.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
miraage
@miraage
Старый прогер
function desFormAction($myfrom){
    $myfrom.submit(function(event){
        event.preventDefault();
        $myfrom.validate({
            rules: validationRm['rules'],
            messages: validationRm['messages'],
            submitHandler: function() {
                //...
                $.ajax({
                    //...
                })
            }
        });
    })
}
Ответ написан
Ваш ответ на вопрос

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

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