Oo緣來是你oO


          posts - 120,comments - 125,trackbacks - 0

           【JavaScript】列表元素上下左右移動:Select和Option的應用

          馬嘉楠    2008-12-26

          共同學習,歡迎轉載。轉載請注明地址【http://blog.csdn.net/majianan/archive/2008/12/26/3614255.aspx】,謝謝O(∩_∩)O!

           

           

          功能如下:

          支持一次選中多項在左右列表中來回移動

           



          代碼如下:
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
          <HTML>
           
          <HEAD>
            
          <TITLE> New Document </TITLE>
            
          <META NAME="Author" CONTENT="majianan">
            
          <script language="javascript" >
                
          var currentSel = null;
                
          function
           move(){
                    
          if(arguments.length==1
          ){
                        moveUp(arguments[
          0
          ]);
                    }
          else if(arguments.length==2
          ){
                        moveRight(arguments[
          0],arguments[1
          ]);
                    }
                }
                
          function
           moveUp(direction){
                    
          if(currentSel == nullreturn
          ;
                    
          var index =
           currentSel.selectedIndex;
                    
          if(direction){//up

                        if(index==0return;
                        
                        
          var value = currentSel.options[index-1
          ].value;
                        
          var text = currentSel.options[index-1
          ].text;
                        
                        currentSel.options[index
          -1].value =
           currentSel.options[index].value;
                        currentSel.options[index
          -1].text =
           currentSel.options[index].text;
                        
                        currentSel.options[index].value 
          =
           value;
                        currentSel.options[index].text 
          =
           text;
                        
                        currentSel.options[index].selected 
          = false
          ;
                        currentSel.options[index
          -1].selected = true
          ;
                    }
          else{//down

                        if(index==(currentSel.length-1)) return;
                        
                        
          var value = currentSel.options[index+1
          ].value;
                        
          var text = currentSel.options[index+1
          ].text;
                        
                        currentSel.options[index
          +1].value =
           currentSel.options[index].value;
                        currentSel.options[index
          +1].text =
           currentSel.options[index].text;
                        
                        currentSel.options[index].value 
          =
           value;
                        currentSel.options[index].text 
          =
           text;
                        
                        currentSel.options[index].selected 
          = false
          ;
                        currentSel.options[index
          +1].selected = true
          ;
                    }
                }
              
          function
           moveRight(src,des){
                  
          if(src.selectedIndex==-1
          ){
                      alert(
          "Please select first!"
          );
                      
          return
          ;
                  }
                  
          for(var i=0;i<src.length;i++
          ){
                      
          if
          (src[i].selected){
                          
          var op = document.createElement("option"
          );
                          op.value 
          =
           src.options[src.selectedIndex].value;
                          op.text 
          =
           src.options[src.selectedIndex].text;
                          des.options.add(op);
                              src.remove(i);
                              i
          --
          ;
                      }
                  }   
              }
              
          function
           setButton(obj){        
                      
          if(obj.length==0return
          ;
                      currentSel 
          =
           obj;
                  
          if(obj.id=="leftSel"
          ){
                      document.getElementById(
          "btnLeft").disabled = true
          ;
                          document.getElementById(
          "btnRight").disabled = false
          ;
                          
                          reSelect(document.getElementById(
          "rightSel"
          ));            
                  }
          else
          {
                      document.getElementById(
          "btnLeft").disabled = false
          ;
                      document.getElementById(
          "btnRight").disabled = true
          ;    
                      
                      reSelect(document.getElementById(
          "leftSel"
          ));                
                  }       
              }
              
              
          function
           reSelect(obj){
                  
          for(var i=0; i<obj.length; i++
          ){
                      
          if(obj[i].selected) obj[i].selected = false
          ;
                  }
              }
              
          </script>

           
          </HEAD>

           
          <BODY>
            
          <form id="form1">
                
          <table width="40%" align="center">
                    
          <tr>
                        
          <td>
                            
          <input type="button" value=" Up " id="btnUp" onClick="move(true);" style="width:65"/>
                          
          <br />
                          
          <input type="button" value=" Down " id="btnDowm" onClick="move(false);" style="width:65" />                
                        
          </td>

                        
          <td>
                            
          <select multiple id="leftSel" onclick="setButton(this)" ondblclick="document.getElementById('btnRight').click()" style="height:200px;width:100px;">
                              
          <optgroup label="Left List" /> 
                              
          <option value="1">Java</option>

                              
          <option value="2">JavaScript</option>
                              
          <option value="3">C++</option>
                              
          <option value="4">HTML</option>
                          
          </select>
                      
          </td>
                      
          <td>
                          
          <input type="button" value=" >> " id="btnRight" onClick="move(document.getElementById('leftSel'),document.getElementById('rightSel'));" style="width:65" />
                          
          <br />
                          
          <input type="button" value=" << " id="btnLeft" onClick="move(document.getElementById('rightSel'),document.getElementById('leftSel'));" style="width:65" />
                          
          </td>
                          
          <td>
                              
          <select multiple id="rightSel" onclick="setButton(this)"  ondblclick="document.getElementById('btnLeft').click()" style="height:200px;width:100px;" >
                              
          <optgroup label="Right List" /> 
                              
          <option value="5">CSS</option>

                              
          <option value="6">.Net</option>
                              
          </select>
                          
          </td>
                      
          </tr>
                  
          </table>
              
          </form>
           
          </BODY>
          </HTML>


          馬嘉楠
          jianan.ma@gmail.com

          posted on 2008-12-26 15:20 馬嘉楠 閱讀(2290) 評論(2)  編輯  收藏 所屬分類: SoureCodeJava Script

          FeedBack:
          # re: 【原】【JavaScript】列表元素上下左右移動:Select和Option的應用[未登錄]
          2008-12-28 15:24 | chair
          還不錯,支持雙擊就更好了  回復  更多評論
            
          # re: 【原】【JavaScript】列表元素上下左右移動:Select和Option的應用
          2008-12-29 11:56 | 馬嘉楠
          @chair
          謝謝, 已經修改,支持雙擊操作  回復  更多評論
            
          主站蜘蛛池模板: 大宁县| 淮滨县| 蒲江县| 资中县| 读书| 正镶白旗| 普兰店市| 咸宁市| 宜章县| 五指山市| 长泰县| 洞头县| 阳曲县| 德昌县| 安徽省| 陕西省| 胶南市| 祁连县| 新建县| 洛隆县| 额济纳旗| 汕头市| 波密县| 准格尔旗| 阜阳市| 河池市| 会泽县| 繁峙县| 东港市| 芜湖县| 昌图县| 铜山县| 宜春市| 合川市| 泸州市| 南阳市| 吕梁市| 德格县| 吉安市| 河曲县| 陆丰市|