jQuery повторно связать .submit () после вызова AJAX - PullRequest
3 голосов
/ 06 мая 2011

Я создаю систему в стиле форума, в которой создаются сообщения, и пользователи могут публиковать комментарии к исходному сообщению. (То, что я делаю, на самом деле сильно отличается по контексту, но тема та же).

Форма для добавления комментария является частью поста, который добавляется с помощью jQuery $ .get ().

Вот обработчик отправки:

$('#add-stage-form').submit(function(){

        var data = $('#add-stage-form').serialize();
        add_stage(data);
        return false;   
    });

Ладно ... теперь мне нужно, чтобы его связали, как только он будет извлечен, то же самое можно было использовать live().

И, пожалуйста, если кто-нибудь предложит live('submit', function(){ ... }) Я БУДЕТ кричать, потому что отправить не работает, как щелчок!

Я также хорошо знаю, что вы могли бы связать событие «click» с той же кнопкой - я бы много скорее связал бы событие .submit (), хотя, если возможно

Заранее спасибо! :)

Ответы [ 2 ]

5 голосов
/ 06 мая 2011

Вы можете добавить привязку вручную в обратном вызове onComplete метода get ...

$.get('getposts.html', function(data) {
    var myForm = $(data);
    $('.formContainer').append(myForm);

    $('.add-stage-form', myForm).submit(function(){

        var data = $(this).serialize();
        add_stage(data);
        return false;   
    });

});

* редактировать Изменен add-stage-form, чтобы он стал классом, а не id. Вы упомянули, что будет форма для сообщения?

1 голос
/ 06 мая 2011

Вы пробовали использовать Live()?:)

А если серьезно, это может быть не такой уж плохой идеей, если вы прикрепите событие click к кнопке, которая затем вызывает операцию jQuery.Post().Или даже метод javascript, который отправляет страницу.

Я знаю, что это не самое лучшее решение, но оно может перевести вас с линии.каждый приходит.

...