【问题标题】:Open form in new tab on submit click单击提交时在新选项卡中打开表单
【发布时间】:2014-05-08 06:45:27
【问题描述】:

我在这里遇到过类似的问题,但没有一个直接涉及我正在寻找的问题。所以我有一个带有 target="_blank" 的表单 div。单击输入提交链接时,我希望表单在新选项卡中打开。

我在后台有一些 javascript 代码,它们根据按钮操作表单项以提供不同的选项。单击提交按钮时,我希望表单值与表单一起正确传递并在新选项卡中打开。

如果我禁用 Javascript,表单会在新选项卡中正确打开,因此 Javascript 会阻止新选项卡。如何在通过表单传递选项值的同时正确打开表单?

一些示例代码:

<form id="search" name="search" action="www.search.com" target="_blank" method="post">
...
<input type="submit" name="commit" value="Search" class="button">

还有,为什么 Javascript 会阻止新标签弹出?

【问题讨论】:

  • 我实际上不能透露 JS 本身,但它所做的只是根据用户单击的选项操作表单值和样式。提交表单时绝不会调用它,所以不知道它为什么会阻止弹出窗口。
  • 老实说,我认为这与 js 相关。根据您的描述做了一些超级快速的事情,这似乎不是问题:jsfiddle.net/hf35X。如果您的 js 完全在操作表单,请确保它不会删除 target="_blank" 部分。作为测试的一部分,您可以通过 js 在表单提交上添加 target=blank 属性 - 看看会发生什么。
  • 我正在使用 Drupal 进行构建。已禁用表单 JS 仍然是同样的问题。甚至使用 jQuery 通过 $('#search').get(0).setAttribute('target', '_blank'); 来强制目标。所以似乎其他一些 JS 阻止了新标签

标签: javascript html forms input submit


【解决方案1】:

¿你试过这样调用你的 JavaScript 函数吗?

<form id="search" name="search" action="www.search.com" target="_blank" method="post" onSubmit="return function();">

编辑:调用后,您可以在JS上进行字段设置,如果一切正常,只需返回true即可提交表单,或返回false取消提交。

【讨论】:

  • 我已经尝试过这种方法并向输入添加一个 JS 函数调用,但它会在新窗口中打开一个,并且调用链接的原始选项卡也会被执行。
  • 恐怕如果不看你的JS代码,我将无法提供更多帮助。
【解决方案2】:

在提交点击时尝试在新选项卡中打开表单

<input type="submit" target="_blank" name="commit" value="Search" class="button">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 2017-06-23
    • 2020-10-31
    相关资源
    最近更新 更多