<!DOCTYPE html>
<html>
    <head>
        <title>选择框,移动和重排选项</title>
        <script type="text/javascript" src="js/EventUtil.js"></script>
    </head>
    <body>
        <form>
            <select id="selLocations1" size="5" multiple="multiple" >
                <option value="Sunnyvale, CA">0_Sunnyvale</option>
                <option value="Los Angeles, CA">1_Los Angeles</option>
                <option value="Mountain View, CA">2_Mountain View</option>
                <option value="">3_China</option>
                <option>4_Australia</option>
            </select>
            
            <select id="selLocations2" size="5" multiple="multiple"></select>
            
            <p>
                单击按钮,把当前选中项移动到其他选择框:
                <br>
                <input type="button" value=">>" id="btnMoveLeft">
                <input type="button" value="<<" id="btnMoveRight">
            </p>
       </form>
       
        <script type="text/javascript">
            (function(){
                
                var btnMoveLeft = document.getElementById("btnMoveLeft"),
                    btnMoveRight = document.getElementById("btnMoveRight"),
                    selectbox1 = document.getElementById("selLocations1"),
                    selectbox2 = document.getElementById("selLocations2"),
                    textbox = document.getElementById("txtIndex"),
                    result = new Array,
                    option = null,
                    selectedIndexRight = 0,
                    selectedIndexLeft = 0;
                
                /* 获取选中项的值 */
                function getItemMessage(){
                    var message = "";
                    for( var j = 0, jlen = result.length; j < jlen; j++  ){
                        message += "选项索引:" + result[j].index + ",\n选项文本:" + result[j].text + ",\n选项的值:" + result[j].value + ";\n\n"
                    }
                    console.log( message );
                }
                /* 获取选中项的值end */
/* 获取右侧选择框选中项索引 */ EventUtil.addHandler( selectbox2 , "change" ,function(even){ event = EventUtil.getEvent( event ); var target = EventUtil.getTarget( event ); selectedIndexRight = target.selectedIndex; //console.log("右侧选择框事件查询的选中项:" + selectedIndexRight ); }); /* 获取右侧选择框选中项索引end */
/* 获取左侧选择框选中项索引 */ EventUtil.addHandler( selectbox1 , "change" ,function(even){ event = EventUtil.getEvent( event ); var target = EventUtil.getTarget( event ); selectedIndexLeft = target.selectedIndex; //console.log("左侧选择框事件查询的选中项:" + selectedIndexLeft ); }); /* 获取左侧选择框选中项索引end */ /* 移动选中项 */ function moveOptionItem( target ){ for( var i = 0, len = result.length; i < len; i++ ){ if( target.id == "btnMoveLeft" ){ //selectbox2.appendChild( result[i] ); //添加到右侧选择框的最后面 //selectbox2.insertBefore( result[i] , selectbox2.options[result[i].index -1] ); //添加到右侧选择框,并向前移动一个选项的位置 //selectbox2.insertBefore( result[i] , selectbox2.options[result[i].index + 2] ); //添加到右侧选择框,并向后移动一个选项的位置 selectbox2.insertBefore( result[i] , selectbox2.options[ selectedIndexRight] ); //把左侧选中项,添加到右侧指定位置 }else if ( target.id == "btnMoveRight" ){ //selectbox1.appendChild( result[i] ); //添加到左侧选择框的最后面 //selectbox1.insertBefore( result[i] , selectbox1.options[result[i].index -1] ); //添加到左侧选择框,并向前移动一个选项的位置 //selectbox1.insertBefore( result[i] , selectbox1.options[result[i].index + 2] ); //添加到左侧选择框,并向后移动一个选项的位置 selectbox1.insertBefore( result[i] ,selectbox1.options[ selectedIndexLeft] ); //把右侧选中项,添加到左侧指定位置 } } result = []; } /* 移动选中项end */ /* >> 按钮事件 */ EventUtil.addHandler(btnMoveLeft, "click", function(event){ event = EventUtil.getEvent( event ); var target = EventUtil.getTarget( event ); for( var i = 0, len = selectbox1.options.length; i < len; i++ ){ option = selectbox1.options[i];                 if( option.selected ){   result.push( option );                 }            } //getItemMessage(); //获取选中项的值 moveOptionItem( target ); //向右移动选中项 }); /* >> 按钮事件end */ /* << 按钮事件 */ EventUtil.addHandler(btnMoveRight, "click", function(event){ event = EventUtil.getEvent( event ); var target = EventUtil.getTarget( event ); for( var i = 0, len = selectbox2.options.length; i < len; i++ ){ option = selectbox2.options[i];                 if( option.selected ){   result.push( option );                 }            } //getItemMessage(); //获取选中项的值 moveOptionItem(target ); //向左移动选中项 }); /* << 按钮事件end */ })(); </script> </body> </html>