如何使用jQuery提交表单然后重新加载页面

时间:2012-12-10 23:29:46

标签: javascript jquery

我正在试图弄清楚这是否可行。

我有一个具有Form-Foo的Page-A,并在新窗口中对Bar进行操作。

点击提交后,我希望表单提交并重新加载Page-A。

到目前为止,我只能让一个或另一个工作......任何指针都会受到赞赏。

除了DudeSolutions解决方案......我试过这个:

$(document).ready(function() {
    $('#foo').submit(function() {
        $.post('bar.asp', $(#foo).serialize(), function(data) {

                window.location.reload();

        });

    });
});

相同的结果......我可以提交表单并打开一个新选项卡......但是Page-A没有重新加载。

2 个答案:

答案 0 :(得分:4)

如果您打算提交表单并重新加载页面,那将是默认行为,并且只有action属性中的url不正确。如果是这样,只需更改URL,无论如何都不需要ajax:

$(function() {
    $('#Form-Foo').attr('action', 'Page-A url');
});

或:

$(function() {
    $('#foo').on('submit', function(e) {
          e.preventDefault();
          setTimeout(function() {
               window.location.reload();
          },0);
          this.submit();
    });
});

只是排队重新加载应该足够等到表单发送后重新加载页面,但是当你离开浏览器选项卡时大多数浏览器停止超时,直到你返回到该选项卡它才会真正重新加载,但这应该是不明显的。

答案 1 :(得分:-1)

这是一个想法:

  <script type="text/javascript">
    $("#my_form").submit(function() {
      $.ajax({
        type: "POST",
        url: "/path/to/post/handler/",
        data: $("#my_form").serializeArray(),
        success: function() {
    top.reload();
        }
        });
    return false;
});</script>