Javascript onsubmit属性无法打开新窗口

Javascript onsubmit属性无法打开新窗口,javascript,forms,redirect,window.open,onsubmit,Javascript,Forms,Redirect,Window.open,Onsubmit,这里有一个关于表单的快速问题。我在网上搜索过,似乎不明白为什么我实现的东西不起作用 这个想法很简单。我在JSP页面中有一个表单。表单定义了一个“onsubmit”属性,用于打开带有一些参数的不同jsp。在表单内部有几个按钮,其中一个按钮调用JavaScript函数,JavaScript函数反过来提交表单(在某些情况下) 代码如下: JSP: 如果我在表单定义中添加target=“\u blank”,则会打开一个新窗口,但不会打开我要打开的jsp。最后,我希望表单执行一个servlet操作(使用a

这里有一个关于表单的快速问题。我在网上搜索过,似乎不明白为什么我实现的东西不起作用

这个想法很简单。我在JSP页面中有一个表单。表单定义了一个“onsubmit”属性,用于打开带有一些参数的不同jsp。在表单内部有几个按钮,其中一个按钮调用JavaScript函数,JavaScript函数反过来提交表单(在某些情况下)

代码如下: JSP:

如果我在表单定义中添加target=“\u blank”,则会打开一个新窗口,但不会打开我要打开的jsp。最后,我希望表单执行一个servlet操作(使用action属性),然后打开新的jsp。有什么想法吗

谢谢


<form id='testForm' action='another.jsp' target='_blank'>

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

请参见此链接的工作演示:(不要在JSFIDLE中工作)


​
var testForm=document.getElementById(“testForm”);
testForm.onsubmit=函数(e){
窗口打开(“http://stackoverflow.com");
返回true;
};​

请看这里的jsfiddle:

我可能错了,但这就是您想要的吗

请参见此链接的工作演示:(不要在JSFIDLE中工作)


​
var testForm=document.getElementById(“testForm”);
testForm.onsubmit=函数(e){
窗口打开(“http://stackoverflow.com");
返回true;
};​

请参见此处的JSFIDLE:

我所寻找的解决方案可在此处找到:


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

我正在寻找的解决方案可以在这里找到:


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

如果添加
newForm.jsp,它将在新窗口中打开。但是我不明白为什么你不使用
而不是
按钮
,然后在
onSubmit
中使用
callJsFunction
。如果你添加
newForm.jsp应该在新窗口中打开,请查看我在建议答案下面的评论。但是我不明白为什么你不使用
而不是
按钮
,然后在
onSubmit
中使用
callJsFunction
。请查看我在建议答案下面的评论。我不想占用操作参数,因为我还需要调用servlet来进行一些处理。我想一个更好的问题是,我可以从servlet重定向到一个新窗口吗?如果
action.“…”
用于其他用途,那么在提交表单时决定执行什么操作的逻辑在哪里?据我所知,您需要使用提交处理程序截取表单提交,执行任何需要的操作,可能包括ajax调用,然后无条件地
返回false
以抑制自然表单提交。我不想占用action参数,因为我还需要调用servlet来进行一些处理。我想一个更好的问题是,我可以从servlet重定向到一个新窗口吗?如果
action.“…”
用于其他用途,那么在提交表单时决定执行什么操作的逻辑在哪里?据我所知,您需要使用提交处理程序拦截表单提交,执行任何需要的操作,可能包括ajax调用,然后
无条件返回false
以抑制自然表单提交。谢谢大家。我在这里找到了我想要的:谢谢大家。我在这里找到了我想要的:
function callJsFunction() {
  if (launchNow == 1) {
    var form = document.getElementById("testForm");
    form.submit();
  }
}
<form id='testForm' action='another.jsp' target='_blank'>
<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>