这个功能我们经常用到,将左边列表框的元素移动到右边,或者将右边列表框的元素移动到左边,可以一次性全部移动
function listbox_moveacross(sourceID, destID) { var src = document.getElementById(sourceID); var dest = document.getElementById(destID); for(var count=0; count < src.options.length; count++) { if(src.options[count].selected == true) { var option = src.options[count]; var newOption = document.createElement("option"); newOption.value = option.value; newOption.text = option.text; newOption.selected = true; try { dest.add(newOption, null); //Standard src.remove(count, null); }catch(error) { dest.add(newOption); // IE only src.remove(count); } count--; } } } // http://www.75271.com //.. listbox_moveacross('countryList', 'selectedCountryList');
下面是像是的演示效果代码,可以直接在浏览器内执行
Click below buttons to move selected options right or left.<br> <table> <tbody><tr> <td> <select id="sourceSelect" size="10" multiple=""> <option value="a">Afghanistan</option> <option value="b">Bahamas</option> <option value="c">Barbados</option> <option value="d">Belgium</option> <option value="e">Bhutan</option> <option value="f">China</option> <option value="g">Croatia</option> <option value="h">Denmark</option> <option value="i">France</option> </select> </td> <td> <button onclick="listboxMoveacross('sourceSelect', 'destSelect');">>></button> <br> <button onclick="listboxMoveacross('destSelect', 'sourceSelect');"><<</button> </td> <td> <select id="destSelect" size="10" multiple=""> <option value="a">Afghanistan</option> <option value="b">Bahamas</option> <option value="c">Barbados</option> <option value="d">Belgium</option> <option value="e">Bhutan</option> <option value="f">China</option> <option value="g">Croatia</option> <option value="h">Denmark</option> <option value="i">France</option> </select> </td> </tr> </tbody></table> <script> function listboxMoveacross(sourceID, destID) { var src = document.getElementById(sourceID); var dest = document.getElementById(destID); for(var count=0; count < src.options.length; count++) { if(src.options[count].selected == true) { var option = src.options[count]; var newOption = document.createElement("option"); newOption.value = option.value; newOption.text = option.text; newOption.selected = true; try { dest.add(newOption, null); //Standard src.remove(count, null); }catch(error) { dest.add(newOption); // IE only src.remove(count); } count--; } } } </script>