日期:2014-05-18  浏览次数:20497 次

███基础JS问题 关于关闭子页,同时为父页中的 textbox 传值的问题! 100 分,立刻结岾!!███

我要实现这样的功能:

-----------------------------

父页   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( "Tex