我正在尝试打开一个新的弹出窗口,将值插入数据库,然后将一个值返回到当前窗口。打开一个新的弹出窗口并单击return后,它返回值,但是当我点击提交并在此之后返回它时,不会返回该值。我认为这是因为新窗口会被提交按钮刷新。这就是为什么它没有返回值。
主页
<form></form>
<form>
<input name="maparea" size="2" type="TEXT">
<input onclick='targetitem = document.forms[1].maparea; dataitem = window.open("popup.php", "dataitem", "toolbar=no,menubar=no,scrollbars=yes"); dataitem.targetitem = targetitem' value="Get Value" type="button">
</form>
Popoup窗口
<script>
function select_item(item){
targetitem.value = item;
top.close();
return false;
}
</script>
<form action="" method="post">
<input type="submit" name="sub" value="Submit" />
<input type="button" name="re" value="Return" onclick='return select_item("3")' />
</form>
任何解决方案? 我想在返回值后首先提交我想要的内容
答案 0 :(得分:2)
在弹出窗口中,勾选提交按钮上的onclick事件,以便在提交之前执行。 然后在onclick处理程序中执行:
window.opener['dataitem'] = <your return value>;
然后在提交后,您的父窗口将具有该值,您可以像这样访问它:
var somevariable = window['dataitem'];
答案 1 :(得分:0)
这个怎么样?
window.opener
将其传回,然后关闭弹出窗口。答案 2 :(得分:0)
function setColor(color){ if (opener && !opener.closed){ opener.document.theForm.theField.value = color; opener.focus(); } window.close(); } ... <td width="30" bgcolor="#FFFF00" onclick="setColor(this.bgColor)"> </td>
Read more at http://www.codingforums.com/showthread.php?t=61319#gkH9pd6gdgvxYqQZ.99