JQuery диалоговое сообщение дублируется - PullRequest
0 голосов
/ 25 июля 2011

В первый раз, когда я пишу сообщение, сообщение отправляется нормально. Затем я закрываю диалоговое окно и щелкаю ссылку, чтобы открыть снова, и когда я снова отправляю данные, они дублируются и добавляются дважды. Такое поведение, кажется, продолжает добавлять duplidcte каждый раз. например, post1, затем post1 + post1, затем post1 + post1 + post1. Я должен постоянно обновлять браузер, чтобы сделать сообщение. Надеюсь, вы поняли идею. Если бы кто-то мог проверить мой код, я был бы благодарен. Большое спасибо

// Feedback form

function feedbacknew() {

    $("#fb_form").dialog({
        autoOpen: false,
        resizable: true,
        modal: true,
        title: 'Submit a feedback request',
        width: 480,
        beforeclose: function (event, ui) {
            $("#fb_message").html("");


        },
        close: function (event, ui) {
            $("#fb_message").html("");
            $("#feedback").get(0).reset();
            $("#fb_form").dialog('close');

        }

    });

    $('#fb_submit').live('click', function () {

        var name = $('#fb_uname').val();
        var client = $('#fb_client').val();
        var department = $('#fb_department').val();
        var email = $('#fb_email').val();
        var position = $('#fb_position').val();
        var feedback = $('#fb_feedbacknew').val();
        var data = 'fb_uname=' + name +
                   '&fb_client=' + client +
                   '&fb_department=' + department +
                   '&fb_email=' + email +
                   '&fb_position=' + position +
                   '&fb_feedbacknew=' + feedback;
        $.ajax({
            type: "POST",
            url: "feedback.php",
            data: data,
            success: function (data) {

                $("#feedback").get(0).reset();
                $('#fb_message').html(data);


                $("#flex1").flexReload();

            },
            error:function (xhr, ajaxOptions, thrownError){
                    alert(xhr.status);
                    alert(thrownError);
                }    
        });
        return false;

    });

    $("#fb_form").dialog('open');

}

Ответы [ 3 ]

1 голос
/ 26 июля 2011

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

0 голосов
/ 10 мая 2013

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

уничтожить () Полностью удаляет функциональность диалога. Это вернет элемент обратно в его состояние перед инициализацией. Этот метод не принимает никаких аргументов. Примеры кода: Вызвать метод уничтожения:

1 $ (".selector") .dialog ("destroy");

0 голосов
/ 28 февраля 2013

Изменить методы .live ().

Если вы используете новую версию jquery, вы можете использовать .on (). если не использовать напрямую .click (), как указано ниже:

$ ('# fb_submit'). Click (function () {....

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