JavaScript如何實(shí)現(xiàn)組合列表框中元素移動(dòng)效果

字號(hào):


    首先給大家說(shuō)下組合框和列表框的區(qū)別:
    組合框包括列表框和文本框的功能 
    文本框:只能輸入數(shù)據(jù) 
    列表框:只能選擇數(shù)據(jù) 
    組合框:既能輸入數(shù)據(jù),又能選擇``
    應(yīng)用背景:在頁(yè)面中有兩個(gè)列表框,需要把其中一個(gè)列表框的元素移動(dòng)到另一個(gè)列表框 。
    實(shí)現(xiàn)的基本思想:
    (1)編寫(xiě)init方法對(duì)兩個(gè)列表框進(jìn)行初始化;
    (2)為body添加onload事件調(diào)用init方法;
    (3)編寫(xiě)move(s1,s2)把s1中選中的選項(xiàng)移到s2;
    (4)編寫(xiě)moveAll(s1,s2)把s1中所有的選項(xiàng)都移到s2.
    (5)為按鈕添加onclick事件。
    javascript代碼如下:
    <script type="text/javascript" language="javascript">
    //對(duì)下拉框信息進(jìn)行初始化
    function init() {
    for (i = ; i < ; i++) {
    var y = document.createElement("option");//增加一個(gè)元素option
    y.text = '選項(xiàng)' + i;
    var x=document.getElementById("s");//根據(jù)ID找到列表框
    x.add(y, null); //
    }
    }
    //把選中的選項(xiàng)移到另一邊
    function move(s, s) {
    var index = s.selectedIndex;
    if (index == -) {
    alert("沒(méi)有選中值");
    return;
    }
    s.length++;
    s.options[s.length - ].value = s.options[index].value;
    s.options[s.length - ].text = s.options[index].text;//s中當(dāng)前選中的值賦給s的最后一個(gè)元素
    s.remove(index);//從s中移除當(dāng)前元素
    }
    //把一邊的完全移到另一邊
    function moveAll(s, s) {
    if (s.length == ) {
    alert("沒(méi)有可用選擇");
    return;
    }
    s.length = s.length + s.length;
    for (var i = ; i < s.length; i++) {
    s.options[s.length - s.length + i].value = s.options[i].value;
    s.options[s.length - s.length + i].text = s.options[i].text;
    }
    s.length = ;
    }
    </script>
    <body>代碼:
    <body onload="init()">
    <table>
    <tr>
    <td><select id="s" size=></select></td>
    <td><input type="button" name="moveToRight" value=">"
    onClick="move(s,s)"> <br>
    <br> <input type="button" name="moveAllToRight" value=">>"
    onClick="moveAll(s,s)"> <br> <input type="button"
    name="moveToLeft" value="<" onClick="move(s,s)"> <br>
    <br> <input type="button" name="moveAllToLeft" value="<<"
    onClick="moveAll(s,s)"></td>
    <td><select id="s" name="s" size=></select></td>
    </tr>
    </table>
    </body>
    以上內(nèi)容給大家介紹了JavaScript如何實(shí)現(xiàn)組合列表框中元素移動(dòng)效果的相關(guān)知識(shí),希望對(duì)大家有所幫助!