如何将子窗口的值传到父窗口去调用

原创 2008年07月04日 03:22:00
这是我当初的问题" 现在我想实现这样一个功能 现在父窗口有一个select控件,同时有一个"增加"按钮, 点击按钮,弹出一个窗口, 这时弹出窗口也有一个table,同时有一个"确认"按钮 table中有若干项,每一行对应一条记录,并有一个checkbox,选中这个checkbox就等于选中 了这条记录, 代码大致这样 <table>   <tr>    <td><input type="checkbox" name="recode" value="<%=recode1%"></input>nbsp$; nbsp$; nbsp$; <%=recode1%>></td>   </tr> </table>

其实这个表格也是动态生成,所以记录的条数也是不确定的 现在我们这个表格中选中若干条记录 然后点击确定,就能把这几条记录,加到我们的父窗口select控件中 注意不能用jsp这类服务器端语言,就用javascipt 该怎么实现啊,有些头疼啊 关键是如何动态增加select的option?? 大虾帮忙啊"

首先取得父窗口可以用"window.opener" 现在思路是这样的在子窗口获取子窗口的控件对象,然后将其作为参数传入父窗口中 我干脆把code贴过来,再加上注释吧

<script language="javascript"> function apply()     {          //获取子窗口中checkbox控件对象数组,注意获取对象数组的方法          var chkGroup=document.getElementsByName("chkGroup");         //调用父窗口的对应方法,调用模式是window.opener.方法(参数)          window.opener.addSel(chkGroup);         //关闭当前窗口          window.close();     } </script > 这是在子窗口中的关键code

 

<script language="javascript">        function addSel(chkGroup)     {        if(null==chkGroup)            {             alert("当前没有组可以增加");            }          else          {              var selCtrl = document.getElementById("belongGroup");                           var len= chkGroup.length;              var opt= null;              var chk=null;                                       for(i=0;i<len;i++)              {                                 if(chkGroup.checked)                  {                    chk = chkGroup;     // opt =  new Option(chk.name,chk.value,false,false);                     opt =  document.createElement('option');                   opt.value=chk.value;                   opt.text=chk.name;                   selCtrl.add(opt,selCtrl.length);                                 }              }          }         } </script > 这是在父窗口中的关键code

大家可以注意一下,创建select控件的option有两种方法 一种是直接当做对象,new 出来 例如你可以 opt =  new Option(chk.name,chk.value,false,false); 第二种是调用document的方法来创建  opt =  document.createElement('option');  当然这样就必须在多加上几行赋值的代码.例如 opt.value=chk.value;   opt.text=chk.name; 而select控件增加option的方法就是  selCtrl.add(Option对象,索引); 之前在网上有另外一个方法 selCtrl.appendChild(Option对象); 这个方法不好使,不知为什么,Option对象确实是附加上去,但是值却是空的 即在select控件中点击,确实有对应option存在,看到的却是空白

而且另外一个地方,我最初是想把对父窗口select控件的增加的那段code也放在子窗口中 但是也就是不好使,不理解这是为何 所以后来只好把checkbox的控件数值作为参数传递给父窗口的方法

 

几个注意的地方,写javascript的时候常常会不自觉引入java的思维 例如变量类型,例如String str, int x之类,在方法定义的时候 也会是function method(var xx){}这样的东东 记住,方法声明一定function method(xx){} ,变量可以是var str,var xx

MFC中子窗口调用父窗口指针教程

最近在写一个MFC程序,其中遇到了子窗口调用父窗口指针的问题,这个问题困惑了我很长时间。各种论坛和资源能检索的都检索了,但是没有遇到特别直白明了的答案。在综合很多答案以后,我决定制作一个详细点的教程。...
  • chenyongtai123
  • chenyongtai123
  • 2016年07月05日 14:29
  • 1905

VC++ 对话框工程MFC中父窗口和子窗口传值方法

C++中对话框工程MFC中父窗口和子窗口传值方法
  • Antares_SANTALEN
  • Antares_SANTALEN
  • 2016年09月09日 11:29
  • 4203

父窗口与子窗口调用

在使用iframe标签的时候,难免会需要在父窗口调用子窗口中的js方法;子窗口调用父窗口的方法;兄弟窗口之间方法调用,所以,稍微整理一下这方面的内容。...
  • sinat_24032823
  • sinat_24032823
  • 2017年05月06日 10:17
  • 160

vc 子窗口怎么调用父窗口的函数和变量?

1. 首先要在父窗口中定义成public的变量与函数2. 通过指针指向父窗口3. 再进行调用 .如CxxxDlg *pDlg=(CxxxDlg *)AfxGetMainWnd();或CxxxDlg *...
  • cece409770352
  • cece409770352
  • 2010年08月23日 10:05
  • 2432

c# 父窗口向子窗口传值

首先定义两个Form,一个为Form1,一个为Form2,其中Form1作为父窗口,Form2作为子窗口 1、父窗口传值给子窗口        Form1中代码:         p...
  • e_zhiwen
  • e_zhiwen
  • 2014年06月04日 09:55
  • 5542

WM_PAINT(父子窗口间)

WM_PAINT(父子窗口间) 窗口句柄(HWND)都是由操作系统内核管理的,系统内部有一个z-order序列,记录着当前从屏幕底部(假象的从屏幕到眼睛的方向),到屏幕最高层的一个窗口句柄的排序,这...
  • dsg333
  • dsg333
  • 2013年08月17日 08:53
  • 1002

子窗口调用父窗口变量和函数示例

示例1:子窗口是新打开的窗口   父窗口: parent var parentPara='parent'; function parentFuncti...
  • w93223010
  • w93223010
  • 2012年09月29日 10:15
  • 611

怎样在父窗口中获得弹出的子窗口中的值!

以前做过一个项目中要求当填写联系人的时候,点击  一个按钮后弹出一个子窗口,选中子窗口中的联系人后,将选中的联系人的值填充到父窗口来,当时以为很简单,但一做起来就发现不是很好下手,最近,当我看到一篇写...
  • hk8846
  • hk8846
  • 2007年05月09日 21:40
  • 4023

Flex父子窗口相互调用

Flex父子窗口相互调用 1、设计思路 (1)子窗口调用父窗口的方法 (2)子窗口做了修改后,返回父窗口,父窗口调用子窗口函数 2、设计源码 (1)父窗口 ParentWindow.mxml:...
  • you23hai45
  • you23hai45
  • 2014年05月03日 13:53
  • 1512

Flex4 Popup窗口访问父窗口的5种方法以及相互传值

1.如果使用MVC框架,相信这并不是一个问题。而如果没有使用的话,可以用类似的方法设置一个单例,子窗口和父窗口通过这个单例来交互消息,如果需要解耦,请发送自定义事件。总之,只要按照MVC思路来做就可以...
  • u010395804
  • u010395804
  • 2014年06月27日 13:20
  • 1052
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何将子窗口的值传到父窗口去调用
举报原因:
原因补充:

(最多只允许输入30个字)