【问题标题】:onsubmit property fails to open new windowonsubmit 属性无法打开新窗口
【发布时间】:2012-12-27 20:28:32
【问题描述】:

这里有一个关于表单的快速问题。我在网上搜索过,似乎无法弄清楚为什么我实施的方法不起作用。

这个想法很简单。我在 JSP 页面中有一个表单。该表单定义了一个“onsubmit”属性,以使用一些参数打开一个不同的 jsp。在表单内部,我有几个按钮,其中一个调用 JavaScript 函数,该函数依次提交表单(在某些条件下)。

代码如下: JSP:

...
<form id='testForm' onsubmit="window.open('another.jsp')">
  <input type="button" onclick="callJsFunction()" />
  ..
</form>

JavaScript:

function callJsFunction() {
  if (launchNow == 1) {
    var form = document.getElementById("testForm");
    form.submit();
  }
}

如果我将 target="_blank" 添加到表单定义中,则会打开一个新窗口,但不会打开我想要打开的 jsp。最终,我希望表单执行一个 servlet 操作(使用 action 属性),然后打开新的 jsp。有什么想法???

谢谢!

【问题讨论】:

  • 如果添加&lt;form action="newForm.jsp" target="_blank"&gt; newForm.jsp 应该会在新窗口中打开。但我不明白你为什么不使用&lt;input type="submit" /&gt; 而不是button,然后在onSubmit 中使用callJsFunction
  • 请在建议的答案下方查看我的评论

标签: javascript forms redirect window.open onsubmit


【解决方案1】:

我正在寻找的解决方案在这里找到:Javascript Post on Form Submit open a new window

我可以将目标设置为我定义并打开的窗口,而不是设置 target="_blank"。在我的 servlet 中,我重定向到所需的 jsp,它会出现在新的弹出窗口中。

【讨论】:

    【解决方案2】:
    <form id='testForm' action='another.jsp' target='_blank'>
    

    【讨论】:

    • 我不想绑定action参数,因为我还需要调用一个servlet来做一些处理。我想一个更好的问题是,我可以从 servlet 重定向到新窗口吗?
    • 如果action."..." 用于其他用途,那么决定提交表单时发生什么操作的逻辑在哪里?据我所知,您需要使用提交处理程序拦截表单提交,做任何需要的事情,可能包括一个 ajax 调用,然后 return false 无条件地禁止自然表单提交。
    【解决方案3】:

    我可能错了,但这就是你要找的吗?

    请在此链接查看工作演示:http://fiddle.jshell.net/vf6AC/show/light/(不要在 jsfiddle 中工作)

    <form action="http://google.com" id="testForm">
        <input type="submit" />
    </form>​
    
    <script type="text/javascript">
    var testForm = document.getElementById("testForm");
    
    testForm.onsubmit = function(e){
        window.open("http://stackoverflow.com");
    
        return true;
    };​
    </script>
    

    在此处查看 jsfiddle:http://jsfiddle.net/vf6AC/

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 2011-08-04
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多