首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2012-01-14 
███基础JS问题 关于关闭子页,同时为父页中的 textbox 传值的问题! 100 分,立刻结岾!!███ 我要实现这样的功

███基础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( "TextBox1 ").value =str;


}

子窗口

opener.setValue( 'xxxxx ');

[解决办法]
window.opener.document.getElementById( "TextBox1 ").value = AreaID;
window.close();

我是这样写的,可以呀
[解决办法]
try ->

// parent.aspx
// js
window.onload = function() {
var myTextBox = document.getElementById( ' <% =TextBox1.ClientID %> ');
}


// child.aspx
// js
// ...
opener.myTextBox.value = "hello world ";
// ...
window.close();
[解决办法]
try---->

document.getElementById( ' <%=TextBox1.ClientID %> ').value;
[解决办法]
再不行的话在父窗口写个

function setValue(str){
document.getElementById( "TextBox1 ").value =str;
}

子窗口

opener.setValue( 'xxxxx ');

=========

这个方式 8 错 !!!
专门定义一个方法,公开给子页面

同时,注意使用

document.getElementById( ' <% =TextBox1.ClientID %> ')

热点排行