2014-09-23 26 views
0

弹出窗口,我要提交表单的弹出窗口(不为空)。这工作正常,但由于某种原因,我的父窗口第二次打开。JavaScript表单提交与目标

var formelements = document.getElementById("exportform"); 
formelements.removeAttribute("action"); 
formelements.setAttribute("target","/path/exportwindow.html"); 
exportwindow = window.open("/path/exportwindow.html", "myexportwindow", "width=800,height=600,resizable=yes");           

formelements.submit(); 

HTML:

<form id="exportform" action="/path/myfunction" method="post"> 

所以会发生什么是弹出窗口打开,并在后台我的父窗口打开一个新的标签。谁能告诉我为什么js的行为是这样的?

+0

我们不明白请在堆栈溢出描述它新功能片段 – 2014-09-23 09:25:33

+0

可能重复的[Window.open和通过post方法传递参数](http://stackoverflow.com/questions/ 3951768/window-open-and-pass-by-post-method) – 2016-05-18 19:31:40

回答

2

在window.open的第二个参数是窗口的名称,必须是相同的目标

var formelements = document.getElementById("exportform"); 
formelements.setAttribute("action","path/to/exportwindow.php"); 
formelements.setAttribute("target","bugsme"); 
exportwindow = window.open("", "bugsme", "width=800,height=600,resizable=yes"); 

formelements.submit(); 

这将打开一个弹出窗口,但你可能不应该删除操作参数,但它设置为正确的脚本接收表格数据

+0

是的,像这样它提交给一个新的Wi ndow,这个看起来和父母一样,但我希望它提交到一个新的窗口,里面有一个新的html,什么是exportwindow.html。有没有办法做到这一点? – 2014-09-23 09:11:11

+0

@ user3891252将操作参数设置为正确的脚本(接收表单数据的脚本)。另外一个html可以做“/path/exportwindow.html”,即使那是不寻常的(一种没有任何内容的形式) – FrancescoMM 2014-09-23 09:14:06

+1

@FrancescoMM ,,非常有用,节省我的时间。非常感谢你。还有一个问题,为什么不能删除操作参数表单的setAttribute方法?像exportwindow = window.open(“path/to/exportwindow.php”,“bugsme”,“width = 800,height = 600,resizable = yes”); – T8Z 2015-11-20 04:04:14