4

我试图弄清楚这是否可能。

我的 Page-A 具有 Form-Foo 并在新窗口中执行 Bar 操作。

单击提交后,我希望提交表单并重新加载页面 A。

到目前为止,我只能让一个或另一个工作......任何指针将不胜感激。

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

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

                window.location.reload();

        });

    });
});

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

4

2 回答 2

6

如果您打算提交表单并重新加载页面,那将是默认行为,只有 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();
    });
});

只是排队重新加载应该足以等到发送表单后重新加载页面,但是由于大多数浏览器在您离开浏览器选项卡时会停止超时,因此在您返回该选项卡之前它不会真正重新加载,但是应该不明显。

于 2012-12-10T23:32:34.753 回答
-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>
于 2012-12-10T23:34:01.710 回答