select 多选列表传值,主要是读取选中的值,然后传递到对面的 select 中,每个功能都是独立的代码。
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
js 核心代码
- /*移除左边选中的列表项到右边*/
- function fMoveSelectedOptionsLeftToRight(oLeft,oRight)
- {
- if(!(oLeft&&oRight))
- {
- return;
- }
- if(!hasOptions(oLeft))
- {
- return;
- }
- if(oLeft.selectedIndex==-1)
- {
- oLeft.selectedIndex=0;
- }
- for(var i=0;i<oLeft.options.length;i++)
- {
- if(oLeft.options[i].selected)
- {
- var oOption = document.createElement("OPTION");
- oOption.setAttribute("text",oLeft.options[i].text);
- oOption.setAttribute("value",oLeft.options[i].value);
- oRight.add(oOption);
- }
- }
- clearSelectedOptions(oLeft);
- }
- /*移除左边的所有列表项到右边*/
- function fMoveAllOptionsLeftToRight(oLeft,oRight)
- {
- if(!(oLeft&&oRight))
- {
- return;
- }
- if(!hasOptions(oLeft))
- {
- return;
- }
- for(var i=0;i<oLeft.options.length;i++)
- {
- var oOption = document.createElement("OPTION");
- oOption.setAttribute("text",oLeft.options[i].text);
- oOption.setAttribute("value",oLeft.options[i].value);
- oRight.add(oOption);
- }
- clearAllOptions(oLeft);
- }
- /*移除右边选中的列表项到左边*/
- function fMoveSelectedOptionsRightToLeft(oLeft,oRight)
- {
- if(!(oLeft&&oRight))
- {
- return;
- }
- if(!hasOptions(oRight))
- {
- return;
- }
- if(oRight.selectedIndex==-1)
- {
- oRight.selectedIndex=0;
- }
- for(var i=0;i<oRight.options.length;i++)
- {
- if(oRight.options[i].selected)
- {
- var oOption = document.createElement("OPTION");
- oOption.setAttribute("text",oRight.options[i].text);
- oOption.setAttribute("value",oRight.options[i].value);
- oLeft.add(oOption);
- }
- }
- clearSelectedOptions(oRight);
- }
- /*移除右边的所有列表项到左边*/
- function fMoveAllOptionsRightToLeft(oLeft,oRight)
- {
- if(!(oLeft&&oRight))
- {
- return;
- }
- if(!hasOptions(oRight))
- {
- return;
- }
- for(var i=0;i<oRight.options.length;i++)
- {
- var oOption = document.createElement("OPTION");
- oOption.setAttribute("text",oRight.options[i].text);
- oOption.setAttribute("value",oRight.options[i].value);
- oLeft.add(oOption);
- }
- clearAllOptions(oRight);
- }
- /*清空select所有options*/
- function clearAllOptions(oSelect)
- {
- if(oSelect)
- {
- var ops=oSelect.options;
- while(ops.length>0)
- {
- oSelect.remove(ops.length-1);
- }
- }
- }
- /*清空select所有选中的options*/
- function clearSelectedOptions(oSelect)
- {
- if(oSelect)
- {
- for(var i=0;i<oSelect.options.length;i++)
- {
- if(oSelect.options[i].selected)
- {
- oSelect.remove(i--);
- }
- }
- }
- }
- /*判断select是否有options*/
- function hasOptions(oSelect)
- {
- if(oSelect)
- {
- return oSelect.options.length>0;
- }
- return false;
- }
来源: