如何从javascript更改表单的目标?

如何从javascript更改表单的目标?,javascript,html,forms,Javascript,Html,Forms,因此,我试图更改表单的目标,以便打开一个新窗口。此表单的任何类型的重定向都使用相同的窗口,但只有一个窗口。后者是一个调用自定义javascript函数的按钮,该函数必须将目标从默认设置的“\u self”更改为“\u blank”,这显然完成了我想要的任务 这是我的表格标签 <html:form action="<%=nomeAction%>" target="_self"> ... <html:button styleClass="button" prop

因此,我试图更改表单的目标,以便打开一个新窗口。此表单的任何类型的重定向都使用相同的窗口,但只有一个窗口。后者是一个调用自定义javascript函数的按钮,该函数必须将目标从默认设置的“\u self”更改为“\u blank”,这显然完成了我想要的任务

这是我的表格标签

<html:form action="<%=nomeAction%>" target="_self">
...
    <html:button styleClass="button" property="button" 
    onclick="javascript:redirectOnAnewWindow('mostraConguagli770')">
        <bean:message key="button.mostraConguagli770"/>
    </html:button>
</form>
我试过有评论的和没有评论的,但都不管用。 所以我不确定问题出在哪里,但是手动更改表单的目标,将值固定为“_blank”效果非常好,唯一的问题是我只需要在按下一个按钮时才需要它更改目标


有什么可能的方法可以做到这一点吗?因为我查找了它,但找不到任何解决我问题的方法,下面的html代码运行良好。您可以引用它并相应地更改代码

  • 如果您单击
    单击我
    ,然后单击
    提交
    ,目标将是
    “您自己”
    ,因为调用函数
    changeFormTarget
    ,表单将在同一选项卡中提交
  • 如果您在未单击“单击我”的情况下单击“提交”,则目标将为“空白”,表单将在新选项卡中提交

点击我
提交
函数changeFormTarget(el){
console.log(el.form.target)
el.form.setAttribute('target','u self')
console.log(el.form.target)
}

下面的html代码运行良好。您可以引用它并相应地更改代码

  • 如果您单击
    单击我
    ,然后单击
    提交
    ,目标将是
    “您自己”
    ,因为调用函数
    changeFormTarget
    ,表单将在同一选项卡中提交
  • 如果您在未单击“单击我”的情况下单击“提交”
,则目标将为“空白”
,表单将在新选项卡中提交

点击我
提交
函数changeFormTarget(el){
console.log(el.form.target)
el.form.setAttribute('target','u self')
console.log(el.form.target)
}

我认为您的问题来自于标签中的html,因为这在没有标签的情况下运行良好

见:

我做了一个jsfiddle:

html


我认为您的问题来自于标记中的html,因为这在没有标记的情况下很好地工作

见:

我做了一个jsfiddle:

html


大多数浏览器允许用户通过其设置控制新窗口和选项卡的打开。大多数浏览器允许用户通过其设置控制新窗口和选项卡的打开。非常感谢,问题似乎在于表单之前的html标记。不幸的是,对遗留代码进行维护并不是你能做的最好的事情。。。。非常感谢,问题似乎是表单之前的html标记。不幸的是,对遗留代码进行维护并不是你能做的最好的事情。。。。谢谢
function redirectOnAnewWindow(event) {
    document.forms[0].action=document.forms[0].action+"?event="+evento;
    //document.forms[0].setAttribute("target", "_blank");
    document.forms[0].target = "_blank";
    document.forms[0].submit();
}
<form action="blabla.html" target="_self">
    <button class="button" onclick="javascript:redirectOnAnewWindow('mostraConguagli770')">
    Redirect
    </button>
</form>
function redirectOnAnewWindow(event) {
    document.forms[0].action="blibli.html";
    document.forms[0].target = "_blank";
    document.forms[0].submit();
}