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