发布请求何时完成无法检测

时间:2011-06-16 23:06:07

标签: javascript jquery ajax forms post

我只需点击一下按钮就会多次提交多个数据。

首先,我将数据提交给可变数量的隐藏iframe (表单为enctype="multipart/form-data"。然后我想运行正常的提交按钮/功能,重定向主页面。

如果我在一个功能中执行此操作,我最终不会收到我发送到隐藏的iframe的所有数据。我相信重定向在其他表单完成发送之前开始(有时我收到提交的第一个数据,大部分时间我没有收到)。

我使用setTimeout(function(){$("#submitbtn").click()},3000)攻击了一个解决方案......但显然这并不总是需要3秒钟。我想要一种检测它何时完成的方法,以便我可以开始提交。

很抱歉,如果您需要更多信息,请注意/询问。

3 个答案:

答案 0 :(得分:0)

我不确定你是如何将这些数据提交给iframe的,但如果你使用的是$.ajax,你可以设置async : false,它会暂停每个jQuery事件,动画等等。可能有些东西如果您使用不同的方法,则类似。

答案 1 :(得分:0)

如果您使用的是AJAX,我建议使用jQuery $ .post的成功回调。

e.g。

$.post('/process', form_data, function(data) { document.location = '/thankyou'; false})

在此示例中,在成功提交发布数据后,用户将被重定向到/ thankyhou

你也可以在回调中使用$(“#submitbtn”)。click()。

答案 2 :(得分:0)

我设法通过使用IFRAME.load来检测目标iframe的更改。一旦所有iframes.load()被解雇,我就会解雇最后一个提交(重定向主页面的提交)。