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