<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>

解决方案 »

  1.   

    retForm()  函数中的for循环应该从大到小:
    for(var i=selone.length-1; i>=0; i--),因为执行了remove操作,从小到大是不行的
      

  2.   

    一. 父窗口:
    <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>
      

  3.   

    meizz(梅花雪) ( ) 已经搞定了
    我就来看看玩了