2012-11-09 98 views
0

我想打開一個新的彈出窗口,將值插入數據庫,然後返回一個值到當前窗口。當我打開一個新的彈出窗口並單擊返回後,它將返回值,但當我點擊提交併在此之後返回時,該值不會返回。我認爲這是因爲新窗口被提交按鈕刷新。這就是爲什麼它不會返回值。打開新的彈出窗口並返回值

主頁

<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

變化'top.close();''來window.close()的;' – rynhe

回答

2

在彈出窗口中,勾選onclick事件在您的提交按鈕,以便它在提交之前執行。 然後在onclick處理程序做:

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

,然後進行提交,你的父窗口將有一個價值,你可以這樣訪問:

var somevariable = window['dataitem']; 
+0

謝謝你,它工作得很好 –

0

這個怎麼樣?

  1. 打開彈出窗口。
  2. 在彈出窗口中:通過AJAX提交表格(以避免頁面刷新)。
  3. 在彈出窗口中:在AJAX調用的成功處理程序中,獲取所需的值,使用window.opener將其傳回,然後關閉彈出窗口。
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)">&nbsp;</td> 
Read more at http://www.codingforums.com/showthread.php?t=61319#gkH9pd6gdgvxYqQZ.99 
相關問題