一. 父窗口:
<form name=form1>
<select name=parentList>
<option>请选择
</select>
</form>子窗口:
<select onchange="writeParentList(this.value)">
<option>请选择
<option value=aaa>aaa
<option value=bbb>bbb
<option value=ccc>ccc
<option value=ddd>ddd
<option value=eee>eee
</select><script language=javascript>
function writeParentList(str)
{
   if(top==window) return; //若该页没有被 frame 则跳出
   if(str=="") return;
   if(parent.document.form1.parentList)
   {
        e = parent.document.form1.parentList;
        var newOP=new Option(str, str, true, true);
        for(var i=0; i<e.options.length; i++) //不重复
           if(e.options[i].value == str) return;
        e.options[e.options.length] = newOP;
   }
}
</script>
二. opener关系:父窗口:
<form name=form1>
<select name=parentList>
<option>请选择
</select>
</form>
<script language=javascript>
function writeParentList(str)
{
   if(str=="") return;
   if(document.form1.parentList)
   {
        e = document.form1.parentList;
        var newOP=new Option(str, str, true, true);
        for(var i=0; i<e.options.length; i++) //不重复
           if(e.options[i].value == str) return;
        e.options[e.options.length] = newOP;
   }
}
</script><input type=button value=ok onclick="window.open('ttt.htm','meizz')">
子窗口:
<select onchange="if(window.name!='')opener.writeParentList(this.value)">
<option>请选择
<option value=aaa>aaa
<option value=bbb>bbb
<option value=ccc>ccc
<option value=ddd>ddd
<option value=eee>eee
</select>

解决方案 »

  1.   

    左边的下拉框节点转移到右边下拉框
    <table border=0 cellpadding=0 cellspacing=0><form name=meizz>
      <tr><td>
        <select id=list1 size=8 ondblclick="moveOption(this, this.form.list2)">
          <option value=A>aaaaaaaaaa
          <option value=B>bbbbbbbbbb
          <option value=C>cccccccccc
          <option value=D>dddddddddd
          <option value=E>eeeeeeeeee
          <option value=F>ffffffffff
          <option value=G>gggggggggg
          <option value=H>hhhhhhhhhh
        </select></td>
      <td width=40 align=center>
        <input name=add type=button value=">>>" onclick="moveOption(this.form.list1, this.form.list2)"><br><br>
        <input name=sub type=button value="<<<" onclick="moveOption(this.form.list2, this.form.list1)">
      </td><td>
        <select id=list2 size=8 ondblclick="moveOption(this, this.form.list1)">
        </select>
      </td></tr></form>
    </table><script language="JavaScript"><!--
    function moveOption(e1, e2){
        try{
            var e = e1.options[e1.selectedIndex];
            e2.options.add(new Option(e.text, e.value));
            e1.options.remove(e1.selectedIndex);
        }   catch(e){}
    }
    //--></script>
      

  2.   

    再问一下,如何把select列表的text也传递过去,现在是value和text是一样的,用this.value只能传递select的value(这样做的原因是显示出来的是用户名,而实际上是根据用户ID操作)
      

  3.   

    <select onchange="window.open(this.value)">
    <option value="http://www.cctv.com" >cctv</option>
    <option value="http://www.baidu.com">baidu</option>
    <option value="http://www.163.com">163</option>
    <option value="http://www.qq.com">QQ</option>
    </select>
      

  4.   

    this.value; //值
    this.text;  //text