JavaScript如何实现组合列表框中元素移动效果
首先给大家说下组合框和列表框的区别:
组合框包括列表框和文本框的功能
文本框:只能输入数据
列表框:只能选择数据
组合框:既能输入数据,又能选择``
应用背景:在页面中有两个列表框,需要把其中一个列表框的元素移动到另一个列表框。
实现的基本思想:
(1)编写init方法对两个列表框进行初始化;
(2)为body添加onload事件调用init方法;
(3)编写move(s1,s2)把s1中选中的选项移到s2;
(4)编写moveAll(s1,s2)把s1中所有的选项都移到s2.
(5)为按钮添加onclick事件。
javascript代码如下:
<scripttype="text/javascript"language="javascript"> //对下拉框信息进行初始化 functioninit(){ for(i=;i<;i++){ vary=document.createElement("option");//增加一个元素option y.text='选项'+i; varx=document.getElementById("s");//根据ID找到列表框 x.add(y,null);// } } //把选中的选项移到另一边 functionmove(s,s){ varindex=s.selectedIndex; if(index==-){ alert("没有选中值"); return; } s.length++; s.options[s.length-].value=s.options[index].value; s.options[s.length-].text=s.options[index].text;//s中当前选中的值赋给s的最后一个元素 s.remove(index);//从s中移除当前元素 } //把一边的完全移到另一边 functionmoveAll(s,s){ if(s.length==){ alert("没有可用选择"); return; } s.length=s.length+s.length; for(vari=;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>代码:
<bodyonload="init()"> <table> <tr> <td><selectid="s"size=style="width:"></select></td> <td><inputtype="button"name="moveToRight"value=">" onClick="move(s,s)"><br> <br><inputtype="button"name="moveAllToRight"value=">>" onClick="moveAll(s,s)"><br><inputtype="button" name="moveToLeft"value="<"onClick="move(s,s)"><br> <br><inputtype="button"name="moveAllToLeft"value="<<" onClick="moveAll(s,s)"></td> <td><selectid="s"name="s"size=style="width:"></select></td> </tr> </table> </body>
以上内容给大家介绍了JavaScript如何实现组合列表框中元素移动效果的相关知识,希望对大家有所帮助!