function switchOptions(srcObj,disObj)
{
var lengthOfToObj=disObj.length;
for(var i = srcObj.length-1;i > -1;i--)
{
var op = srcObj.options[i];
if(null != op && op.selected)
{
disObj.add(new Option(op.text,op.value),lengthOfToObj);
disObj.options[lengthOfToObj].selected=true;
op.removeNode(true);
}
}
}srcObj,disObj分别为两个select

解决方案 »

  1.   

    http://7http.com/省市地区选择.rar这个下载地址,刚上传,放一段时间。
      

  2.   

    <form>
    <select multiple size="5" id="l" ondblclick="pick(this,eval('r'));">
    <option>a</option>
    <option>b</option>
    <option>c</option>
    <option>d</option>
    <option>e</option>
    </select>
    <input type="button" value=">>" onclick="pickAll(eval('l'),eval('r'))">
    <input type="button" value=">" onclick="pick(eval('l'),eval('r'))">
    <input type="button" value="<" onclick="pick(eval('r'),eval('l'))">
    <input type="button" value="<<" onclick="pickAll(eval('r'),eval('l'))">
    <select multiple size="5" id="r" ondblclick="pick(this,eval('l'));">
    </select>
    </form><script language="javascript">
    function pick(src,dest){
      if(src.options.length == 0 || src.selectedIndex < 0) 
        return;
      dest.options[dest.options.length] = new Option(src.options[src.selectedIndex].text,src.options[src.selectedIndex]);
      src.options.remove(src.selectedIndex);
    }
    function pickAll(src,dest){
      if(src.options.length == 0) 
        return;
      var len = src.options.length;
      for(var i=0;i<len;i++)
      {
      dest.options[dest.options.length] = new Option(src.options[0].text,src.options[0].value);
      src.options.remove(0);
      }

    </script>