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
          謝謝, 已經修改,支持雙擊操作  回復  更多評論
            
          主站蜘蛛池模板: 和硕县| 读书| 永嘉县| 夹江县| 蒙阴县| 江川县| 巴彦淖尔市| 阿图什市| 青冈县| 三门县| 舞阳县| 亳州市| 罗田县| 准格尔旗| 吕梁市| 清水县| 阿克苏市| 黄大仙区| 琼结县| 寿宁县| 鲁甸县| 象山县| 钟山县| 肇州县| 哈密市| 濉溪县| 织金县| 怀来县| 诸暨市| 海丰县| 绥德县| 丰台区| 高青县| 张家界市| 保定市| 武义县| 光山县| 沈丘县| 渑池县| 含山县| 兴城市|