提交之前的jQuery表单发布
我有一个页面,其上需要发布到外部URL的表单。不过,我也需要将这些信息发送到当前页面(mypage.php)。出于安全原因,我不能只发布到mypage.php并使用cURL通过PHP发布到外部网站 - 表单必须直接提交到外部网站。提交之前的jQuery表单发布
此代码将在mypage.php找到并不起作用(我假设提交myForm会的不是等待后):
$('#myform').submit(function() {
$.post('mypage.php', serialized_form,
function(data) {
...
}, 'html'
);
}
...
<form id="myform" action="http://example.org" method="post">
...
</form>
什么是做这样的事情的最好方法?
谢谢!
您可以使$ .post()同步,这将阻止javascript(和站点)继续,直到它返回。
如果你使用$.ajax({type: 'post', async: false})
(加上你的其他参数)应该做的伎俩。
更多信息它会为你工作?
$('#myform').submit(function() {
$.post('mypage.php', serialized_form,
function(data) {
...
$.post('http://example.org', serialized_form, ....);
}, 'html'
);
return false;
}
<form id="myform" method="post">...</form>
没有,因为我需要的形式,但要完成它的行动(与用户被带到外部网站,而这样的)。 – Wickethewok 2010-03-10 16:10:06
我不认为他正在尝试做两个Ajax请求......只有一个到他的网站,然后实际上有形式去其他网站 – Seaux 2010-03-10 16:10:42
如果我理解你的问题,那么你需要你的数据到$ url,然后仍然提交表单。希望下面的代码对你的作品(未测试^^):
;(function($) {
var sent = false;
$('#myform').submit(function() {
if(sent) {
return true;
}
$.post('mypage.php', serialized_form,
function(data) {
sent = true;
$('#myform').submit();
},
'html'
);
return false;
});
})(jQuery);
我曾尝试过这样的事情,但对submit()的调用不起作用。 – Wickethewok 2010-03-10 16:37:35
哈哈,哎呀,是啊 – Seaux 2010-03-10 16:08:52