jQuery submit не перехватывает событие submit после загрузки контента ajax - PullRequest
2 голосов
/ 20 января 2010

Я загружаю контент во всплывающее окно с помощью функции загрузки jQuery Ajax и использую функцию отправки в функции обратного вызова функций загрузки, но по какой-то причине событие вообще не вызывается. (Я использую jQuery jquery-1.3.2.min.js)

$('.popup-container').load(url, function(){ 
    /** Do some stuff here */
    $("form").submit(function() { 
        alert("Form submitted!");       
        return false;
    });
});

Ответы [ 4 ]

3 голосов
/ 20 января 2010

Обновление

Начиная с jQuery 1.7, метод .live() устарел . Он будет удален в jQuery 1.9. Используйте .on() для присоединения обработчиков событий. Пользователи более старых версий jQuery должны использовать .delegate() вместо .live().


Оригинальный ответ

Это можно исправить с помощью метода jQuery live(). Использование live() с submit() было добавлено в jQuery 1.4, поэтому вы должны получить обновление. Вот видеоурок по использованию live() с submit().

При использовании функции live ваш код должен выглядеть следующим образом:

$("form").live('submit' , function() { 
    alert("Form submitted!");       
    return false;
});

$('.popup-container').load(url);
0 голосов
/ 11 августа 2014

У меня была такая же проблема. используя $(document).on('submit', '#form', function() {

вместо: $("#form").submit(function() {

решил проблему. надеюсь, это поможет.

0 голосов
/ 20 января 2010

Как сказал Тим, в jQuery 1.4 добавлена ​​поддержка обработчиков отправки в функции live. Его код должен работать на вас.

Если по какой-либо причине вы не можете использовать jQuery 1.4, вам необходимо повторно применить ваши обработчики:

function applyHandlers(query) {
    $(query).submit(function() { alert('foo'); return false; });
}

applyHandlers('form');

$('.popup-container').load(url, function() {
    applyHandlers($('form', this));
});

Есть гораздо более элегантные способы сделать это, но вы поймете основную идею.

0 голосов
/ 20 января 2010

Я считаю, что возвращение ложных останавливает его отправку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...