Javascript 正在复制jquery对话框帖子

Javascript 正在复制jquery对话框帖子,javascript,jquery,dialog,Javascript,Jquery,Dialog,我第一次发帖子时,帖子提交得很好。然后,我关闭对话框窗口并单击链接重新打开,当我再次提交数据时,它会复制数据并添加两次。这种行为似乎每次都在增加一个重复。例如,post1、post1+post1、post1+post1+post1。我必须不断刷新浏览器才能发布帖子。希望你能明白。如果有人能检查我的代码,我将不胜感激。非常感谢 // Feedback form function feedbacknew() { $("#fb_form").dialog({ autoOpe

我第一次发帖子时,帖子提交得很好。然后,我关闭对话框窗口并单击链接重新打开,当我再次提交数据时,它会复制数据并添加两次。这种行为似乎每次都在增加一个重复。例如,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');

}

我会在你的click函数中添加一个警报,看看它被调用了多少次。如果它被调用的次数正确,那么您没有正确地清除其中一个元素,并且每次连续调用都会追加数据,而不是设置数据。您至少可以通过这种方式缩小问题的范围

更改.live()方法

如果您使用的是新版本的jquery,则可以使用.on()。如果不直接使用。单击()如下所示:


$(“#fb_submit”)。单击(函数(){..

确保在关闭弹出窗口后销毁弹出窗口。 因为当弹出一个div时,它会从html中取出并附加到body的末尾。 在ajax调用之后,将生成一个新的div来填充原始div的位置。 使用destroy可以将div放回其原始位置,并且不会生成新div来填充原始div的位置

销毁 完全删除对话框功能。这将使元素返回其初始前状态。 此方法不接受任何参数。 代码示例: 调用destroy方法:

一,
$(“.selector”).dialog(“destroy”);

重新加载同一页面(使用脚本)时,是否会发生任何更改?然后每次调用都会重复。@uku我想我需要一种方法将单击移出feedbacknew函数,但不确定这篇文章是怎么写的。谢谢何时调用feedbacknew函数?它是从打开对话框的on:press-in flexigrid调用的。我添加了单击警报,下面是发生的情况。我第一次单击页面刷新,它会发出一次警报。然后我关闭表单并再次提交,它会发出两次警报。然后我关闭表单并重新打开,提交数据,它会发出三次警报,并在每次提交时继续添加一次。感谢您的建议,我将单击移出函数并放入$function(),一切正常。谢谢