【问题标题】:Form submit into new tab AND reload current page表单提交到新标签并重新加载当前页面
【发布时间】:2018-02-12 11:09:40
【问题描述】:

我想,我脑子有问题什么的,对不起。对于以下问题,我找不到更好的解决方案:

我正在通过 POST(通过服务器处理数据)发送表单,并希望在新选项卡中打开表单(将在后端创建带有参数的自定义 url)并且当前窗口中的 URL 应该更改。

我的解决方案setTimeout()

function formsubmit() {
  $("#formID").submit();
  setTimeout(function(){
   window.open("URL", "_self");
  }, 1);
}

在 HTML 中,如果您单击按钮或图像,将调用该函数。该表单具有属性target="_blank"

还有其他方法可以提交表单并获得相同的输出吗?

提前致谢。

如果您投反对票,请在 cmets 中写下原因。

【问题讨论】:

  • 使用location.href="...",而不是window.open
  • 感谢@CBroe,location.href 看起来比 window.open 更干净,并且定位到自身。

标签: javascript jquery ajax forms


【解决方案1】:

在 jquery ajax 中使用 data-remote="true"

data-remote="true" 将异步提交表单

 <a id="remote" data-remote="true" data-type="json" href="/project/4/request_access">Request Access</a>


$(document).ready(function() {
    $("#remote").on("ajax:success", function (e, data, status, xhr) {
        window.open("URL", "_self");
     });
});

希望我的回答对你有帮助。

【讨论】:

  • 感谢@tushar,data-remote 就像 JS 中的 preventDefault(),更喜欢 JS。所以你的意思是我应该在ajax调用成功时触发函数?完整的错误处理在后端进行。还有其他解决方案吗?
猜你喜欢
  • 2012-04-12
  • 2013-11-19
  • 1970-01-01
  • 2017-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-22
  • 2021-11-12
相关资源
最近更新 更多