javascript 子窗体父窗体相互传值方法

  管理资源吧精简使用版本,一般情况好多cms都有一些这样的函数。dedecms中的选择相关文章也是用的这样的函数。下面给出具体的代码。

  父页面核心代码:

  

复制代码 代码如下:

  <script>

  function SelectArcListA(fname){

  var posLeft = 10;

  var posTop = 10;

  window.open("content_select_list.asp?f="+fname+"&k="+form1.keyword.value, "selArcList", "scrollbars=yes,resizable=yes,statebar=no,width=700,height=500,left="+posLeft+", top="+posTop);

  }

  </script>

  <input name="lsel" type="button" id="lsel" class="nbt" style="width:150px" onChange="" value="从已发布文档中选取..." onClick="SelectArcListA('form1.xiangguanid');">

  子页面的核心代码:

  

复制代码 代码如下:

  <SCRIPT language=javascript>

  //获得选中文件的文件名

  function getCheckboxItem()

  {

  var allSel="";

  if(document.form2.arcID.value) return document.form2.arcID.value;

  for(i=0;i<document.form2.arcID.length;i++)

  {

  if(document.form2.arcID[i].checked)

  {

  if(allSel=="")

  allSel = document.form2.arcID[i].value;

  else

  allSel = allSel+","+document.form2.arcID[i].value;

  }

  }

  return allSel;

  }

  function selAll()

  {

  for(i=0;i<document.form2.arcID.length;i++)

  {

  if(!document.form2.arcID[i].checked)

  {

  document.form2.arcID[i].checked=true;

  }

  }

  }

  function noSelAll()

  {

  for(i=0;i<document.form2.arcID.length;i++)

  {

  if(document.form2.arcID[i].checked)

  {

  document.form2.arcID[i].checked=false;

  }

  }

  }

  function ReturnValue()

  {

  if(window.opener.document.form1.xiangguanid.value==""){

  window.opener.document.form1.xiangguanid.value = getCheckboxItem();

  }

  else{

  window.opener.document.form1.xiangguanid.value += ","+getCheckboxItem();

  }

  alert("成功增加你选中的ID,你可以继续增加");

  //window.opener=true;

  //window.close();

  }

  下面是html代码,页面中需要<input type="checkbox" name="arcID" value="<%=rs("id")%>">输出选择的id

  

复制代码 代码如下:

  <A class=inputbutx

  href="javascript:selAll()">全选</A>   <A class=inputbutx

  href="javascript:noSelAll()">取消</A>   <A class=inputbutx

  href="javascript:ReturnValue()">把选定值加到列表</A>

  一下是补充:

  //模式窗体传值

  <!-- ====== 父窗体,我取名为parentform.html ==== -->

  

复制代码 代码如下:

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

  <HTML>

  <HEAD>

  <title>弹出窗口内录入数据确定后返回给父窗体--主窗体</title>

  <META NAME="Generator" CONTENT="EditPlus">

  <META NAME="Author" CONTENT="jb 51.net">

  <META NAME="Keywords" CONTENT="">

  <META NAME="Description" CONTENT="">

  <script language="javascript" type="text/javascript">

  function doInput()

  {

  var win = window.showModalDialog("Childform.html",window,"dialogWidth=500px;dialogHeight=300px;center=yes;status=no");

  if(win != null)

  {

  document.getElementById("parentTextBox").value = win;

  }

  }

  </script>

  </head>

  <body>在新弹出的窗体里输入数据,传输到父窗体.

  <br/>

  <br/>

  <br/>

  <input type="text" id="parentTextBox" /> <a href="javascript:doInput()">点这里弹出子窗体</a>

  </BODY>

  </HTML>

  <!-- ============= 父窗体代码结束 ============= -->

  <!-- ======= 子窗体:取名为childform.html  ======= -->

  

复制代码 代码如下:

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

  <HTML>

  <HEAD>

  <title> 弹出窗口内录入数据确定后返回给父窗体--子窗体</title>

  <META NAME="Generator" CONTENT="EditPlus">

  <META NAME="Author" CONTENT="qiujy">

  <META NAME="Keywords" CONTENT="">

  <META NAME="Description" CONTENT="">

  <base target="_self">

  </head>

  <body topmargin="0" leftmargin="0" scroll="no">

  </br>

  <input type="text" id="childTextBox"/>

  </br></br>

  <a href="javascript:doPassToParent()">点这里返回</a>

  </BODY>

  </HTML>

  <script language="javascript" type="text/javascript">

  document.getElementById("childTextBox").value = window.dialogArguments.document.getElementById("parentTextBox").value;

  function doPassToParent()

  {

  if(document.getElementById("childTextBox").value.length <=0)

  {

  alert("请填写数据");

  return;

  }

  window.returnValue = document.getElementById("childTextBox").value;

  window.close();

  }

  </script>

  //子窗体和父窗体传值

  1.新建两个页面 一个是 Parent.html

  

复制代码 代码如下:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml">

  <head>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <title>父窗体</title>

  <script language="javascript" type="text/javascript">

  function OpenWindow(){

  window.open('son.html');

  }

  function setValue(m_strValue){

  document.getElementById("txt_Value").value = m_strValue;

  }

  </script>

  </head>

  <body>

  <form id="form1" name="form1" method="post" action="">

  <label>

  <input type="text" name="txt_Value" id="txt_Value" />

  </label>

  <label>

  <input type="button" name="btn_ShowClose" id="btn_ShowClose" value="按钮" onclick="OpenWindow();" />

  </label>

  </form>

  </body>

  </html>

  另一个是子窗体 :

  

复制代码 代码如下:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml">

  <head>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <title>子窗体</title>

  <script language="javascript" type="text/javascript" >

  function CloseWind(){

  opener.setValue("传值到父窗体");

  window.close();

  }

  </script>

  </head>

  <body>

  <form id="form1" name="form1" method="post" action="">

  <label>关闭

  <input type="button" name="btn_Close" id="btn_Close" value="按钮" onclick="CloseWind();"

  />

  </label>

  </form>

  </body>

  </html>

  2.通过子窗体执行的父窗体的setValue(m_strValue)来执行赋值操作.