你的父窗口的表单元素和子窗口完全一样吗?
不一样的话你不要用索引来修改,可能你父窗口中索引为i的元素根本就不是个checkbox

解决方案 »

  1.   

    这样试试
    self.opener.document.all.form.elements[i].name.checked = true;
    -->
    self.opener.document.all.form.elements[i].checked = true;
      

  2.   

    i对应的元素不一致,不是那个checkbox
      

  3.   

    self.opener.document.all.form.elements[i].name.checked = true;
    -->
    self.opener.document.all.form.elements[i].checked = true;这个方法是可行的,但是我不明白父窗口怎么也会用i来控制?
    难道父与子的窗口的checkbox数目相同?
      

  4.   

    我写了两个测试页面,帖出来以供你参考:
    2.htm
      <form name=form>
        <input type=checkbox name="chk">123<br>
        <input type=checkbox name="chk1">1233<br>
        <input type=button onclick="window.open('1.htm')" value="打开">
      </form>
    1.htm
      <script language="javascript">
    function CloseEvent(){
    for(i=0;i<form.elements.length;i++){
      if(form.elements[i].type=="checkbox")
      {
       //alert("checkbox存在!");
       if(form.elements[i].checked)
         {
         alert("发现有被选中的checkbox存在!");
     self.opener.document.all.form.elements[i].checked = true;//改变父窗口的checkbox选择
      //opener.form.chk.checked = true;
     }
       }
      window.close();
    }}
    </script>
    <form name="form">
    <input type=checkbox name="openedwindow">openedwindow<br>
    <input type=button value="关闭" onclick="CloseEvent();">
    </form>
      

  5.   

    父窗口:
    ---------------------------
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=gb2312">
    <title> New Document </title>
    </head>
    <body>
    <FORM METHOD=POST ACTION="" id=form>
    c1<INPUT TYPE="checkbox" NAME="c1"><br>
    c2<INPUT TYPE="checkbox" NAME="c2"><br>
    c3<INPUT TYPE="checkbox" NAME="c3"><br>
    c4<INPUT TYPE="checkbox" NAME="c3"><br>
    </FORM>
    <INPUT TYPE="button" value="open" onclick="window.open('child.html')">
    </body>
    </html>
    子窗口child.html
    ------------------------------------
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=gb2312">
    <title> New Document </title>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function testClose(){
    for(i=0;i<form.elements.length;i++){
    if(form.elements[i].type=="checkbox"&&form.elements[i].checked)
      self.opener.document.all.form.elements[i].checked = true;

    }
    window.close();
    }
    //-->
    </SCRIPT>
    </head>
    <body>
    <FORM METHOD=POST ACTION="" id=form>
    c1<INPUT TYPE="checkbox" NAME="c1"><br>
    c2<INPUT TYPE="checkbox" NAME="c2"><br>
    c3<INPUT TYPE="checkbox" NAME="c3"><br>
    c4<INPUT TYPE="checkbox" NAME="c3"><br>
    </FORM>
    <INPUT TYPE="button" value="close" onclick="testClose()">
    </body>
    </html>
    ie6下测试通过
      

  6.   

    还是不能改变父窗口的checkbox状态
      

  7.   

    代码一样,我用self.opener.document.all.form.elements[i].checked = true;始终不能选中父窗口的checkbox,但我子父窗口的checkbox-name我都在也页面中打印了出来核对一样的。真的搞糊涂了。