繁体   English   中英

打开新的弹出窗口并返回值

[英]open new popup window and return value

我试图打开一个新的弹出窗口,将值插入数据库,之后返回一个值到当前窗口。 打开一个新的弹出窗口并单击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>

任何解决方案? 我想在返回值后首先提交我想要的内容

在弹出窗口中,在提交按钮上挂钩onclick事件,以便在提交之前执行。 然后在onclick处理程序中执行:

window.opener['dataitem'] = <your return value>;

然后在提交之后,您的父窗口将具有该值,您可以像这样访问它:

var somevariable = window['dataitem'];

这个怎么样?

  1. 打开弹出窗口。
  2. 在弹出窗口中: 通过AJAX提交表单(以避免页面刷新)。
  3. 在弹出窗口中:在AJAX调用的成功处理程序中,获取所需的值,使用window.opener将其传回,然后关闭弹出窗口。
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)">&nbsp;</td>
Read more at http://www.codingforums.com/showthread.php?t=61319#gkH9pd6gdgvxYqQZ.99 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM