我要实现这样的功能:
-----------------------------
父页 parent.aspx 中,点击页面内按钮 value= "选择街道 " 后,调用js 函数function PopupCatSel() ,实现弹出窗口子页 PopChild.aspx
然后,在 子页 PopChild.aspx 中点击其中的一个链接,调用子页内的 js 函数retForm,实现关闭本身, 同时把参数传回到父页 parent.aspx 中的html 元素中去。
父窗口 parent.aspx ,其中一段代码如下:
function PopupCatSel()
{
var selProdWnd=window.open( "PopChild.aspx ", "new ", "resizable=yes,width=580,height=320,top=0 ");
if(selProdWnd.opener== null)
selProdWnd.opener = self;
return (false);
}
<INPUT TYPE= "hidden " name= "StreetID " readonly>
<INPUT TYPE= "hidden " name= "AreaID " value= "4 ">
<INPUT TYPE= "text " autocomplete= "off " NAME= "Street2 " readonly>
然后其中有一个 html 按钮,实现弹出窗口子页 PopChild.aspx
<INPUT name= "cat " onclick= "return(PopupCatSel()) " type= "button " value= "选择街道 " >
---------------------------------------------------
弹出的子窗口 PopChild.aspx 代码如下:
function retForm(AreaID,StreetID,AreaName,StreetName)
{
if (!opener) return true;
opener.document.forms[0].AreaID.value = AreaID;
if (!opener) return true;
opener.document.forms[0].StreetID.value = StreetID;
if(opener.document.forms[0].Street)
opener.document.forms[0].Street.value = AreaName+ " > > "+ StreetName;
opener.document.forms[0].Street2.value = AreaName+ " > > "+ StreetName;
self.close();
return false;
}
然后,有超链接调用以上 js 函数
<a href= " " onClick= "return retForm( '4 ', '338 ', '南岗区 ', '阿河街 ') "> 阿河街 </a>
<a href= " " onClick= "return retForm( '4 ', '339 ', '南岗区 ', '鞍山街 ') "> 鞍山街 </a>
---------------------------------------
实现关闭子页,同时把参数回传给父页
现在的问题是:子页中的 js 函数中的这段代码:
opener.document.forms[0].AreaID.value = AreaID;
是为了给父页中的 <INPUT TYPE= "hidden " name= "StreetID " readonly> 赋值,
但是我想给父页中的一个
<asp:TextBox id= "TextBox1 " runat= "server "> </asp:TextBox>
赋值,那
opener.document.forms[0].AreaID.value = AreaID;
要改成什么样的呢,我试过以下方式,均不好使:
1 document.getElementById( "TextBox1 ").value = AreaID;
2 opener.document.forms[0].getElementById( "TextBox1 ").value = AreaID;
以上两种写法全不好使,请教各位高人一下,这段 js 代码要如何修改呢?
------解决方案--------------------------------------------------------
opener.getElementById( "TextBox1 ").value = AreaID;
------解决方案--------------------------------------------------------
再不行的话在父窗口写个
function setValue(str){
document.getElementById( "TextBox1 ").value =str;