【问题标题】:Submit Form to New Window/Tab提交表单到新窗口/标签
【发布时间】:2013-10-18 04:36:39
【问题描述】:

我已经为我构建的小型 CMS 编写了一个简单的“添加页面”表单,并且我有一个简单的预览功能,可以提交表单并在新窗口中打开页面的前端版本。

到目前为止,我一直在使用:

<input type="submit" name="pagepreview" value="Preview" formtarget="_blank">

显然,使这成为可能的 formtarget 已被贬值(我从未真正知道),并且似乎 Google 可能已在其最新更新中删除了此功能,因为它已停止工作(但在 Firefox 中仍然有效)。

我的选择是什么?我找到的答案都指向 formtarget 或 target 但都不再起作用了。

理想情况下,我希望避免使用 Javascript,但如果这不可能 - 我将如何使用 Javascript 或 jQuery 将表单提交到新窗口?

编辑:

抱歉,解释得不够好 - 我无法将目标属性添加到表单中,因为只有一个按钮允许新窗口(预览按钮),其他按钮只能在同一页面上提交。 Javascript 似乎是我这样做的唯一方法。

【问题讨论】:

  • 并将 formtarget 更改为 target?
  • @Fincha - 不幸的是我遇到了同样的问题。
  • “显然,使这成为可能的 formtarget 已贬值(我从来不知道)” - 不是。
  • @Quentin - 哦,一个快速的谷歌让我相信否则我认为谷歌可能会删除它。

标签: javascript jquery html forms new-window


【解决方案1】:
<form action="..." method="..." target="_blank">
   <input type="submit" name="pagepreview" value="Preview">
</form>

如果需要动态改变目标:

 $('input[type="submit"]').click(function(event){
    var $this = $(this);
    var $form = $this.parents('form');
    $form.attr('target',$this.attr('formtarget'));
    $form.get(0).submit();
    event.preventDefault();
 });

【讨论】:

  • 这里的JS非常非常接近。我不得不将第 6 行更改为 $('input[type="submit"]').trigger('click'); 如果你更新你的答案,我会接受正确的。
  • 奇怪,在点击处理函数中触发点击事件?我不明白。我没有看到全貌,也许这就是问题所在。
  • 是的,我认为这是一个在我不知道的情况下可能很难想象的系统。您的回答确实让我走上了正轨,而且效果很好。
【解决方案2】:

像这样:(添加target = "_blank"

<form action="" method="" target="_blank">
    <input type="text" />
</form>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多