javascript操作多选列表框.docx

上传人:b****3 文档编号:4927939 上传时间:2022-12-11 格式:DOCX 页数:11 大小:16.50KB
下载 相关 举报
javascript操作多选列表框.docx_第1页
第1页 / 共11页
javascript操作多选列表框.docx_第2页
第2页 / 共11页
javascript操作多选列表框.docx_第3页
第3页 / 共11页
javascript操作多选列表框.docx_第4页
第4页 / 共11页
javascript操作多选列表框.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

javascript操作多选列表框.docx

《javascript操作多选列表框.docx》由会员分享,可在线阅读,更多相关《javascript操作多选列表框.docx(11页珍藏版)》请在冰豆网上搜索。

javascript操作多选列表框.docx

javascript操作多选列表框

javascript操作多选列表框

使用javascript操作多选列表框,实现动态增加删除,左右移动,上下排序移动等功能。

将下面的代码存成html文件,运行就可看到效果。

<SCRIPTlanguage="javascript">

/***************************************************************************************************************

*文件名:

selectListTools.js

*文件描述:

关于list列表框的一些工具方法

*主要方法:

*1,moveUp(oSelect,isToTop)------------向上移动一个list列表框的选中项目,

*可以支持多选移动,可以设置是否移动到顶层

*2,moveDown(oSelect,isToBottom)----------向下移动一个list列表框的选中项目,

*可以支持多选移动,可以设置是否移动到底层

*3,moveSelected(oSourceSel,oTargetSel)------在两个列表框之间转移数据

*4,moveAll(oSourceSel,oTargetSel)---------转移两个列表框之间的全部数据

*5,deleteSelectItem(oSelect)-----------删除所选的项目

*

****************************************************************************************************************/

/**

*使选中的项目上移

*

*oSelect:

源列表框

*isToTop:

是否移至选择项到顶端,其它依次下移,

*true为移动到顶端,false反之,默认为false

*/

functionmoveUp(oSelect,isToTop)

{

//默认状态不是移动到顶端

if(isToTop==null)

varisToTop=false;

//如果是多选------------------------------------------------------------------

if(oSelect.multiple)

{

for(varselIndex=0;selIndex<oSelect.options.length;selIndex++)

{

//如果设置了移动到顶端标志

if(isToTop)

{

if(oSelect.options[selIndex].selected)

{

vartransferIndex=selIndex;

while(transferIndex>0&&!

oSelect.options[transferIndex-1].selected)

{

oSelect.options[transferIndex].swapNode(oSelect.options[transferIndex-1]);

transferIndex--;

}

}

}

//没有设置移动到顶端标志

else

{

if(oSelect.options[selIndex].selected)

{

if(selIndex>0)

{

if(!

oSelect.options[selIndex-1].selected)

oSelect.options[selIndex].swapNode(oSelect.options[selIndex-1]);

}

}

}

}

}

//如果是单选--------------------------------------------------------------------

else

{

varselIndex=oSelect.selectedIndex;

if(selIndex<=0)

return;

//如果设置了移动到顶端标志

if(isToTop)

{

while(selIndex>0)

{

oSelect.options[selIndex].swapNode(oSelect.options[selIndex-1]);

selIndex--;

}

}

//没有设置移动到顶端标志

else

oSelect.options[selIndex].swapNode(oSelect.options[selIndex-1]);

}

}

/**

*使选中的项目下移

*

*oSelect:

源列表框

*isToTop:

是否移至选择项到底端,其它依次上移,

*true为移动到底端,false反之,默认为false

*/

functionmoveDown(oSelect,isToBottom)

{

//默认状态不是移动到顶端

if(isToBottom==null)

varisToBottom=false;

varselLength=oSelect.options.length-1;

//如果是多选------------------------------------------------------------------

if(oSelect.multiple)

{

for(varselIndex=oSelect.options.length-1;selIndex>=0;selIndex--)

{

//如果设置了移动到顶端标志

if(isToBottom)

{

if(oSelect.options[selIndex].selected)

{

vartransferIndex=selIndex;

while(transferIndex<selLength&&!

oSelect.options[transferIndex+1].selected)

{

oSelect.options[transferIndex].swapNode(oSelect.options[transferIndex+1]);

transferIndex++;

}

}

}

//没有设置移动到顶端标志

else

{

if(oSelect.options[selIndex].selected)

{

if(selIndex<selLength)

{

if(!

oSelect.options[selIndex+1].selected)

oSelect.options[selIndex].swapNode(oSelect.options[selIndex+1]);

}

}

}

}

}

//如果是单选--------------------------------------------------------------------

else

{

varselIndex=oSelect.selectedIndex;

if(selIndex>=selLength-1)

return;

//如果设置了移动到顶端标志

if(isToBottom)

{

while(selIndex<selLength-1)

{

oSelect.options[selIndex].swapNode(oSelect.options[selIndex+1]);

selIndex++;

}

}

//没有设置移动到顶端标志

else

oSelect.options[selIndex].swapNode(oSelect.options[selIndex+1]);

}

}

/**

*移动select的部分内容,必须存在value,此函数以value为标准进行移动

*

*oSourceSel:

源列表框对象

*oTargetSel:

目的列表框对象

*/

functionmoveSelected(oSourceSel,oTargetSel)

{

//建立存储value和text的缓存数组

vararrSelValue=newArray();

vararrSelText=newArray();

//此数组存贮选中的options,以value来对应

vararrValueTextRelation=newArray();

varindex=0;//用来辅助建立缓存数组

//存储源列表框中所有的数据到缓存中,并建立value和选中option的对应关系

for(vari=0;i<oSourceSel.options.length;i++)

{

if(oSourceSel.options[i].selected)

{

//存储

arrSelValue[index]=oSourceSel.options[i].value;

arrSelText[index]=oSourceSel.options[i].text;

//建立value和选中option的对应关系

arrValueTextRelation[arrSelValue[index]]=oSourceSel.options[i];

index++;

}

}

//增加缓存的数据到目的列表框中,并删除源列表框中的对应项

for(vari=0;i<arrSelText.length;i++)

{

//增加

varoOption=document.createElement("option");

oOption.text=arrSelText[i];

oOption.value=arrSelValue[i];

oTargetSel.add(oOption);

//删除源列表框中的对应项

oSourceSel.removeChild(arrValueTextRelation[arrSelValue[i]]);

}

}

/**

*移动select的整块内容

*

*oSourceSel:

源列表框对象

*oTargetSel:

目的列表框对象

*/

functionmoveAll(oSourceSel,oTargetSel)

{

//建立存储value和text的缓存数组

vararrSelValue=newArray();

vararrSelText=newArray();

//存储所有源列表框数据到缓存数组

for(vari=0;i<oSourceSel.options.length;i++)

{

arrSelValue[i]=oSourceSel.options[i].value;

arrSelText[i]=oSourceSel.options[i].text;

}

//将缓存数组的数据增加到目的select中

for(vari=0;i<arrSelText.length;i++)

{

varoOption=document.createElement("option");

oOption.text=arrSelText[i];

oOption.value=arrSelValue[i];

oTargetSel.add(oOption);

}

//清空源列表框数据,完成移动

oSourceSel.innerHTML="";

}

/**

*删除选定项目

*

*oSelect:

源列表框对象

*/

functiondeleteSelectItem(oSelect)

{

for(vari=0;i<oSelect.options.length;i++)

{

if(i>=0&&i<=oSelect.options.length-1&&oSelect.options[i].selected)

{

oSelect.options[i]=null;

i--;

}

}

}

//js文件完毕

</SCRIPT>

<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">

<BODYstyle="font-size:

12px">

<FORMname="form1"method="post"action="">

<SELECTname="left"size="10"id="select"multiplestyle="width:

100px;">

<OPTIONvalue="aaaaa">aaaaa</OPTION>

<OPTIONvalue="bbbbb">bbbbb</OPTION>

<OPTIONvalue="ccccc">ccccc</OPTION>

</SELECT>

<INPUTstyle="border:

1pxsolidblack"type="button"value=">>>"onClick="moveSelected(document.all.left,document.all.right)">

<INPUTstyle="border:

1pxsolidblack"type="button"value="<<<"onClick="moveSelected(document.all.right,document.all.left)">

<SELECTname="right"size="10"id="select"multiplestyle="width:

100px;">

<OPTIONvalue="ddddd">ddddd</OPTION>

<OPTIONvalue="eeeee">eeeee</OPTION>

<OPTIONvalue="fffff">fffff</OPTION>

<OPTIONvalue="ggggg">ggggg</OPTION>

<OPTIONvalue="hhhhh">hhhhh</OPTION>

<OPTIONvalue="iiiii">iiiii</OPTION>

</SELECT>

<br><br><br><br>

<DIVstyle="background-color:

#CCCCCC;padding:

2px">

<INPUTstyle="border:

1pxsolidblack"type="button"value="上移一格"onClick="moveUp(document.all.right);moveUp(document.all.left)">

<INPUTstyle="border:

1pxsolidblack"type="button"value="下移一格"onClick="moveDown(document.all.right);moveDown(document.all.left)">

<INPUTstyle="border:

1pxsolidblack"type="button"value="上移到顶"

onClick="moveUp(document.all.right,true);moveUp(document.all.left,true)">

<INPUTstyle="border:

1pxsolidblack"type="button"value="下移到顶"

onClick="moveDown(document.all.right,true);moveDown(document.all.left,true);">(支持多选移动)

</DIV>

<BR><BR>

<DIVstyle="background-color:

#CCCCCC;padding:

5px;width:

100%;position:

relative">

右移:

<INPUTtype="radio"name="ifAll"value="right"checked><br>

左移:

<INPUTtype="radio"name="ifAll"value="left"><br><br>

<INPUTtype="button"value="移动全部"style="border:

1pxsolidblack"onClick="judgeMove()">

</DIV>

<br><br>

<DIVstyle="background-color:

#CCCCCC;padding:

5px">

<INPUTtype="button"value="删除"style="border:

1pxsolidblack"

onClick="deleteSelectItem(document.all.left);deleteSelectItem(document.all.right)">

</div>

</FORM>

</BODY>

<SCRIPTlanguage="javascript">

functionjudgeMove()

{

vararrRadio=document.all.ifAll;

varvalOfRadio;

for(vari=0;i<arrRadio.length;i++)

{

if(arrRadio[i].checked)

{

valOfRadio=arrRadio[i].value;

break;

}

}

if(valOfRadio=="left")

moveAll(document.all.right,document.all.left);

if(valOfRadio=="right")

moveAll(document.all.left,document.all.right);

}

</SCRIPT>

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1