jquery: повторяющиеся события отправки, когда та же форма загружается через ajax - PullRequest
0 голосов
/ 22 ноября 2010

У меня есть глобальная форма, которую я хочу использовать одну и ту же форму каждый раз при отправке, и эта форма генерируется автоматически, в зависимости от того, сколько потоков создано из базы данных.таким образом, я мог бы иметь две или четыре формы одного и того же вида при загрузке страницы.Также этот тип формы будет загружен на страницу по определенному запросу через ajax.и самое важное - все эти формы будут использовать одну и ту же функцию отправки.

, например,

html

<div class="form"></div>
<a href="form.php" class="load">load</a>

<div>
<form action="#" method="post" enctype="multipart/form-data" class="form-global">
    <textarea name="str_content" title="Write a comment..."></textarea>
    <input type="submit" name="submit" value="SUBMIT" class="button-public left"/>
</form>
</div>

<div>
<form action="#" method="post" enctype="multipart/form-data" class="form-global">
    <textarea name="str_content" title="Write a comment..."></textarea>
    <input type="submit" name="submit" value="SUBMIT" class="button-public left"/>
</form>
</div>

ниже - рабочий код в jquery,

$(document).ready(function() {

    sumbitform();

    $(".load").click(function () {
        var path = $(this).attr('href');

        $('.form').load( path, {}, function(){

            sumbitform();

            //$(this).bind("submit", sumbitform);
        });

        return false;
    });


});

this.sumbitform = function(){

    $("form.form-global").submit(function(){
        alert('1');
        return false;
    });
}

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

Вы можете увидеть проблему по этой ссылке, http://nano -visions.net /dump / jquery.ajaxsubmit /

как я могу решить эту проблему?могу ли я прикрепить функцию отправки к загруженной форме ajax только так, как показано в этой строке ниже?

$(this).bind("submit", sumbitform); // doesn't work obviously

или какие-нибудь другие идеи получше?

спасибо.

1 Ответ

1 голос
/ 22 ноября 2010

Вам нужно использовать $(this).live("submit", sumbitform); вместо.Это свяжет одно и то же событие с элементами, которые появятся позже, а не только с теми, которые существуют сейчас.

Для получения дополнительной информации посмотрите live в jQuery docs .

...