浏览 15881 次
锁定老帖子 主题:html的下拉框的几个基本用法
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-25
最后修改:2008-12-25
下面是代码 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk"> <title>grid</title> </head> <body> <input type="button" value="getSelect" onclick = "getSelect()"/> <input type="button" value="selectbtn" onclick = "getSelAge()"/> <div> <select name="selectAge" id="selectAge"> <option value="1">18-21</option> <option value="2">22-25</option> <option value="3">26-29</option> <option value="4">30-35</option> <option value="5">Over35</option> </select> </div> <p> <input type="button" value="moreSelect" onclick = "moreSelect()"/> <div> <div>多选 需要增加 multiple属性<br> 在多选中size属性 可以初始化下拉框默认显示几个选项 </div> <div> <select name="moreselAge" id="moreselAge" multiple="multiple"> <option value="1">18-21</option> <option value="2">22-25</option> <option value="3">26-29</option> <option value="4">30-35</option> <option value="5">Over35</option> <option value="6">Over40</option> <option value="7">Over50</option> </select> </div> </div> <p></p> <input type="button" value="addNewbtn" onclick = "addNewSelections()"/> <input type="button" value="deletebtn" onclick = "deleteselections()"/> <input type="button" value="deleAllbtn" onclick = "deleteAllSelections()"/> <div>selectName :<input type="text" id="txtName"/></div> <div>selectValue:<input type="text" id="txtValue"/></div> <div> <select name="moreselAge" id="addNew"> <option value="1" selected>18-21</option> <option value="2">22-25</option> <option value="3">26-29</option> <option value="4">30-35</option> <option value="5">Over35</option> <option value="6">Over40</option> <option value="7">Over50</option> </select> </div> <p>移动选项</p> <p> <table> <tr collspan="2"> <td> <div> <select name="moreselAge" id="move1" multiple="multiple" size="7"> <option value="1">18-21sfiods</option> <option value="2">22-25sjdfd</option> <option value="3">26-29xxs</option> <option value="4">30-35vs</option> <option value="5">Over35dcff</option> <option value="6">Over40shhfsd</option> <option value="7">Over50sdefs</option> <option value="8">Over88www</option> </select> </div> </td> <td width="100" align="center"> <input type="button" value=">" onclick = "rightSingle()" /><br> <input type="button" value=">>" onclick = "rightAll()"/><br> <input type="button" value="<" onclick = "leftSingle()"/><br> <input type="button" value="<<" onclick = "leftAll()"/> </td> <td> <div> <select name="moreselAge" id="move2" multiple="multiple" size="7"> <option value="1">18-21</option> <option value="2">22-25</option> <option value="3">26-29</option> <option value="4">30-35</option> <option value="5">Over35</option> <option value="6">Over40</option> <option value="7">Over50</option> <option value="8">Over88</option> </select> </div> </td> <tr> </table> </body> <script type="text/javascript"> //获得下拉列表对象 oListbox = document.getElementById("selectAge"); var ListUtil = new Object(); var selectbtn = document.getElementById("selectbtn"); function getSelAge (){ //访问选项 alert(oListbox.options[1].firstChild.nodeValue); //显示的内容 alert(oListbox.options[1].getAttribute("value"));//对应的value alert("获得它在集合中的位置== " + oListbox.options[2].index); //获得它在集合中的位置 alert("获得集合的元素个数长度== " + oListbox.options.length); //获得集合的元素个数长度 } /*************************************************************************************************/ //获得选中选项 function getSelect(){ var indx = oListbox.selectedIndex; alert("获得选中的选项的索引 "+ indx ); } //多选下拉框 var moreselAgeList = document.getElementById("moreselAge"); /*******************************************************************/ //入参 下拉框对象 ListUtil.getSelectIndexes = function (oListbox){ var arrIndexes = new Array(); for(var i=0 ; i<oListbox.options.length;i++){ //如果该项被选中则把该项对应的索引添加到数组中 if(oListbox.options[i].selected){ arrIndexes.push(i); } } return arrIndexes; //返回选中的选项索引 } /***************************************************************/ // 多选 function moreSelect(){ var arrIndexes = ListUtil.getSelectIndexes(moreselAgeList); alert("选中的数组length = "+ arrIndexes.length + " 选中的选项索引为 :"+ arrIndexes); } /************************添加新选项***************************************************************/ // var addNewLisbox = document.getElementById("addNew"); //获得下拉框对象 var otxtName = document.getElementById("txtName"); //name 文本框 var otxtValue = document.getElementById("txtValue"); //value 文本框 //添加方法 ListUtil.addOptions = function(oListbox,sName,sValue){ var arryV = new Array(); //标记输入的值是否可以添加 var isAdd = false; //判断是否有重复的值 for(var i =0 ;i<oListbox.options.length;i++){ var sv = oListbox.options[i].getAttribute("value"); if(sv == sValue){ alert("不能添加重复的value"); return ; }else{ isAdd = true; } } if(isAdd || oListbox.options.length == 0){ //下面使用dom方法创建节点 var oOption = document.createElement("option");// 创建option元素 oOption.appendChild(document.createTextNode(sName)); //因为选项的值不是必须的,所以如果传入了值 则添加进来 if(arguments.length == 3){ oOption.setAttribute("value",sValue); } oListbox.appendChild(oOption); //把选项添加进列表框 alert("添加成功!!"); } // end if(isAdd) } //添加按钮的点击事件方法 function addNewSelections(){ var txtname = otxtName.value; var txtvalue = otxtValue.value; if(txtname != "" && txtvalue != ""){ ListUtil.addOptions(addNewLisbox,txtname,txtvalue);//添加新项 otxtName.value = ""; otxtValue.value = ""; }else{ alert("请输入要添加的值和name"); return; } } /*******************删除选中选项****************************************************************/ //传入下拉框对象和(索引) ListUtil.deleteOptons = function(oListbox){ var selIndex = oListbox.selectedIndex; if(oListbox.options.length == 0){ alert("列表中无元素可删除"); return ; } oListbox.remove(selIndex); //删除选中的选项 } //删除按钮点击事件 function deleteselections(){ ListUtil.deleteOptons(addNewLisbox); } /**********删除所有***********************************************************************/ ListUtil.deletsAllOptions = function(oListbox){ if(oListbox.options.length != 0){ for(var i= oListbox.options.length-1;i>=0;i--){ //倒着删除是因为 oListbox.remove(i); } }else{ alert("该列表为空!"); } } function deleteAllSelections(){ ListUtil.deletsAllOptions(addNewLisbox); } /*******移动选项***************************************************************************************/ //获得下拉框 var move1Listbox = document.getElementById("move1"); //左边下拉框 var move2Listbox = document.getElementById("move2"); //右边下拉框 //移动一个或多个选中的选项 ListUtil.move = function(oListboxFrom ,oListboxTo){ //var idx1 = oListboxFrom.selectedIndex; var arrIndexes = ListUtil.getSelectIndexes(oListboxFrom); var oOption ; if(arrIndexes.length == 0 ){ alert("请选择至少一个选项!"); return ; }else{ for(var i=oListboxFrom.options.length-1;i>=0;i--){ oOption = oListboxFrom.options[i]; if(oOption.selected && oOption != null ){ oListboxTo.appendChild(oOption); } } } } //向右移 一个元素 function rightSingle(){ ListUtil.move(move1Listbox,move2Listbox); }; //向左移 一个元素 function leftSingle(){ ListUtil.move(move2Listbox,move1Listbox); } ListUtil.moveAll = function(oListboxFrom,oListboxTo){ for(var i=oListboxFrom.options.length-1;i>=0;i--){ oOption = oListboxFrom.options[i]; //alert(oOption); oListboxTo.appendChild(oOption); } } //向右移所有选项 function rightAll(){ ListUtil.moveAll(move1Listbox,move2Listbox); } //向左移所有选项 function leftAll(){ ListUtil.moveAll(move2Listbox,move1Listbox); } </script> </html> 附件可以看到效果 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-12-25
全局变量加上new Object();一塌糊涂
|
|
返回顶楼 | |
发表时间:2008-12-25
qishi001 写道 全局变量加上new Object();一塌糊涂 new 一个全局的对象有问题吗? |
|
返回顶楼 | |
发表时间:2009-01-09
定义类,使用
var ListUtil = function(){}; 数组,直接使用 var arrIndexes = []; 为什么少用 new 你goole下,我不多说了。 |
|
返回顶楼 | |
发表时间:2009-01-09
还有注意封装好自己写的东西。
|
|
返回顶楼 | |
发表时间:2009-01-16
谢谢qishi001指点 我要加油学习了
|
|
返回顶楼 | |
发表时间:2009-01-16
qishi001 写道 定义类,使用
var ListUtil = function(){}; 数组,直接使用 var arrIndexes = []; 为什么少用 new 你goole下,我不多说了。 给的附件没写错呀 var arrIndexes = new Array(); var ListUtil = new Object(); |
|
返回顶楼 | |