<select ondblclick="removeItem();" id="sltSrc" multiple="true" >                                
<option value="aaaaa" selected="">111</option>
<option value="bbbbb" selected="">222</option>  
<option value="ccccc" selected="">333</option>
<option value="ddddd" selected="">443</option>                                        
</select>
                        
<select ondblclick="addItem();" id="sltTarget"  multiple="true">
</select>
<input type="checkbox" onchange="selectAll()" name="choose_all" id="choose_all" value="0">全选<br>
<script type="text/javascript">
function removeItem(){
    var sltSrc=document.getElementById('sltSrc');
    var sltTarget=document.getElementById('sltTarget');
    for(var i=0;i<sltSrc.options.length;i++)
    {
        var tempOption=sltSrc.options[i];
        if(tempOption.selected){
            sltSrc.removeChild(tempOption);
            sltTarget.appendChild(tempOption);
        }    
    }
} function addItem(){
    var sltSrc=document.getElementById('sltSrc');
    var sltTarget=document.getElementById('sltTarget');
    for(var i=0;i<sltTarget.options.length;i++)
    {
        var tempOption=sltTarget.options[i];
        if(tempOption.selected){
            sltTarget.removeChild(tempOption);
            sltSrc.appendChild(tempOption);
        }    
    }
}
    function selectAll() {
              var sltSrc = document.getElementById('sltSrc');
              var k = sltSrc.options.length;
              var i = 0;
              var sltTarget = document.getElementById('sltTarget');
              for (var i = 0; i < k; i++)
               {
                  var temOption = sltSrc.options[i];
                  if (temOption != null)
                   {
                      sltTarget.appendChild(temOption);
                       i--;
                   }
               }if (k==0){
                  for (var i = 0; i < sltTarget.options.length; i++) {
                      var temOption = sltTarget.options[i];
                      if (temOption != null) {
                          sltSrc.appendChild(temOption);
                          i--;
                      }
                  }              
              }   
          }
</script>麻烦各位copy下来运行一下,现在的问题是点击全选之后,我再从右边的选择框移除一个到左边的时候,如何将已勾选的heckbox全选项取消?

解决方案 »

  1.   

    改一下AddItem,看看是不是你要的
    function addItem(){
        var sltSrc=document.getElementById('sltSrc');
        var sltTarget=document.getElementById('sltTarget');
        for(var i=0;i<sltTarget.options.length;i++)
        {
            var tempOption=sltTarget.options[i];
            if(tempOption.selected){
                sltTarget.removeChild(tempOption);
                sltSrc.appendChild(tempOption);
            }    
        }
    if(document.getElementById('sltSrc').options.length!=0)
    {
    document.getElementById("choose_all").checked=false;
    }
    }