在页面中有两个列表框,需要把其中一个列表框的元素移动到另一个列表框,怎么实现此功能呢,下面通过本文给大家介绍 JavaScript 如何实现组合列表框中元素移动效果,感兴趣的朋友一起学习吧
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
首先给大家说下组合框和列表框的区别:
组合框包括列表框和文本框的功能
文本框:只能输入数据
列表框:只能选择数据
组合框:既能输入数据,又能选择 ``
应用背景:在页面中有两个列表框,需要把其中一个列表框的元素移动到另一个列表框 。
实现的基本思想:
(1)编写 init 方法对两个列表框进行初始化;
(2)为 body 添加 onload 事件调用 init 方法;
(3)编写 move(s1,s2)把 s1 中选中的选项移到 s2;
(4)编写 moveAll(s1,s2)把 s1 中所有的选项都移到 s2.
(5)为按钮添加 onclick 事件。
javascript 代码如下:
- <script type="text/javascript" language="javascript">
- //对下拉框信息进行初始化
- function init() {
- for (i = ; i < ; i++) {
- var y = document.createElement("option");//增加一个元素option
- y.text = '选项' + i;
- var x=document.getElementById("s");//根据ID找到列表框
- x.add(y, null); //
- }
- }
- //把选中的选项移到另一边
- function move(s, s) {
- var index = 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中移除当前元素
- }
- //把一边的完全移到另一边
- function moveAll(s, s) {
- if (s.length == ) {
- alert("没有可用选择");
- 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=s tyle="width:">
- </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=s tyle="width:">
- </select>
- </td>
- </tr>
- </table>
- </body>
以上内容给大家介绍了 JavaScript 如何实现组合列表框中元素移动效果的相关知识,希望对大家有所帮助!
来源: http://www.phperz.com/article/17/0221/266900.html