如何在表单提交上打开一个新窗口

124 forms submit

我有一个提交表单,并希望它在用户提交表单时打开一个新窗口,以便我可以在分析上跟踪它.

这是我正在使用的代码:

<form action="http://URL at mailchimp subscriber URL.com" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" onclick=window.open(google.html,'','scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,status=no');>
    <label for="name">Your Name</label><input type="text" value="" name="FNAME" class="required" id="mce-FNAME">
    <br/>
    <br/>
    <label for="email">Your Email </label><input type="text" value="" name="EMAIL" class="required email" id="mce-EMAIL">
    <br/>
    <br/>
    <input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="submit">
</form>
</div>
Run Code Online (Sandbox Code Playgroud)

Kon*_*nos 259

不需要Javascript,您只需target="_blank"在表单标记中添加属性即可.

<form target="_blank" action="http://example.com"
      method="post" id="mc-embedded-subscribe-form"
      name="mc-embedded-subscribe-form" class="validate"
>
Run Code Online (Sandbox Code Playgroud)

  • 至少在IE 11上,target ="_ blank"在当前浏览器窗口中创建一个新选项卡而不是创建新的浏览器窗口.....恕我直言,新选项卡与新浏览器窗口不同 (5认同)
  • 如果添加target = _blank,则不需要onClick事件. (4认同)
  • 很高兴偶然发现这篇文章!将target ="_ blank"添加到表单标签解决了我需要打开新窗口的问题! (4认同)
  • “打开一个新窗口”的正确解决方案是`target =“_blank”`。新窗口是否添加为选项卡是浏览器的选择。许多现代浏览器认为添加新窗口作为选项卡是更好的用户体验。 (3认同)
  • 这并没有完全回答OP的问题,但它通常是更有用的答案 - 使用`target ="_ blank"`而不是Javascript (2认同)
  • target="blank" 工作得很好。https://developer.mozilla.org/en-US/docs/HTML/Element/form (2认同)
  • 实际上, target='_blank' 将打开一个新选项卡,而不是原始问题所述的新窗口。 (2认同)

Awe*_*lis 30

在基于Web的数据库应用程序中,使用弹出窗口显示数据库数据的打印输出,这足以满足我们的需求(在Chrome 48中测试):

<form method="post" 
      target="print_popup" 
      action="/myFormProcessorInNewWindow.aspx"
      onsubmit="window.open('about:blank','print_popup','width=1000,height=800');">
Run Code Online (Sandbox Code Playgroud)

诀窍是target<form>标记上的属性与处理程序中window.open调用中的第二个参数进行匹配onsubmit.

  • 这正是我在提交时在单独的窗口中生成 PDF 时所寻找的。 (2认同)

Gra*_*ner 7

onclick可能不是将该行动附加到的最佳事件.无论何时任何人点击表单中的任何地方,它都会打开窗口.

<form action="..." ...
    onsubmit="window.open('google.html', '_blank', 'scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,status=no');return true;">
Run Code Online (Sandbox Code Playgroud)


alx*_*lxs 6

要获得与表单target属性相似的效果,您还可以使用或的formtarget属性。input[type="submit]"button[type="submit"]

MDN

...此属性是名称或关键字,指示提交表单后在何处显示收到的响应。这是浏览上下文(例如,选项卡,窗口或嵌入式框架)的名称或关键字。如果指定了此属性,它将覆盖元素表单所有者的目标属性。以下关键字具有特殊含义:

  • _self:将响应加载到与当前响应相同的浏览上下文中。如果未指定属性,则此值为默认值。
  • _blank:将响应加载到新的未命名浏览上下文中。
  • _parent:将响应加载到当前响应的父浏览上下文中。如果没有父母,则此选项的行为与_self相同。
  • _top:将响应加载到顶级浏览上下文(即,当前上下文的祖先且没有父级的浏览上下文)中。如果没有父母,则此选项的行为与_self相同。