提交前jQuery表单发布

时间:2010-03-10 16:00:34

标签: jquery forms

我有一个页面,上面有一个需要发布到外部网址的表单。但是,我还需要将此信息发送到当前页面(mypage.php)。出于安全原因,我不能只发布到mypage.php并使用cURL通过PHP发布到外部网站 - 表单必须直接提交到外部网站。

此代码可以在mypage.php上找到并且不起作用(我假设myform的提交不等待帖子):

$('#myform').submit(function() {
    $.post('mypage.php', serialized_form, 
        function(data) {
            ...
        }, 'html'
    );
}

...

<form id="myform" action="http://example.org" method="post">
...
</form>

做这样的事情的最佳方式是什么?

谢谢!

3 个答案:

答案 0 :(得分:5)

你可以进行$ .post()同步,这会阻止javascript(和网站)继续,直到它被返回。

如果你使用$.ajax({type: 'post', async: false})(加上你的其他参数)那就可以了。

您可以阅读更多信息@ http://api.jquery.com/jQuery.ajax/

答案 1 :(得分:0)

它会对你有用吗?

$('#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>

答案 2 :(得分:0)

如果我了解您的问题,那么您需要将数据转换为$ 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);