使用javascript实现单选及多选的向右和向左移动

方法 一、

  <body>

  <h1>实现单选及多选的向右和向左移动</h1>

  <div id="lst">

   <span>

   <select id="lselect" size="10" multiple="multiple" style="width: 100px;  background-color:blue;">

   <option>选项1</option>

   <option>选项2</option>

   <option>选项3</option>

   <option>选项4</option>

   <option>选项5</option>

   <option>选项6</option>

   <option>选项7</option>

   <option>选项8</option>

   <option>选项9</option>

   <option>选项10</option>

   </select>

   <span style="width: 200px;height: 100px;">

   <input type="button" value="单个向右移动" οnclick="oneRMove()" />

   <input type="button" value="多个向右移动" οnclick="moveRMove()" />

   <input type="button" value="单个向左移动" οnclick="oneLMove()" />

   <input type="button" value="多个向左移动" οnclick="moveLMove()" />

   </span>

   <span>

    <select id="rselect" size="10" style="width: 100px;background-color:  yellow;" multiple="multiple">

   </select>

   </span>

   </span>

  </div> 

  </body>

<script type="text/javascript">

window.onload = function(){}

//获取select对象

var lselect=document.getElementById("lselect");

var rselect=document.getElementById("rselect");

//获取lselect和roptions对象中的所有option

var loptions=lselect.options;

var roptions=rselect.options;

function oneRMove(){

for(var i=0;i<loptions.length;i++){

var op=loptions[i];

if(op.selected){

rselect.appendChild(op);

break;

}

}

}

function moveRMove(){

for(var i=0;i<loptions.length;i++){

var op=loptions[i];

if(op.selected){

rselect.appendChild(op);

i--;

}

}

}

function oneLMove(){

for(var i=0;i<roptions.length;i++){

var op=roptions[i];

if(op.selected){

lselect.appendChild(op);

break;

}

}

}

function moveLMove(){

for(var i=0;i<roptions.length;i++){

var op=roptions[i];

if(op.selected){

lselect.appendChild(op);

i--;

}

}

}

</script>

方法 二

<script type="text/javascript">

sortitems = 1;

function move(fbox,tbox) {

for(var i=0; i<fbox.options.length; i++) {

if(fbox.options[i].selected && fbox.options[i].value != "") {

var no = new Option();

no.value = fbox.options[i].value;

no.text = fbox.options[i].text;

tbox.options[tbox.options.length] = no;

fbox.options[i].value = "";

fbox.options[i].text = "";

   }

}

BumpUp(fbox);

if (sortitems) SortD(tbox);

}

function BumpUp(box)  {

for(var i=0; i<box.options.length; i++) {

if(box.options[i].value == "")  {

for(var j=i; j<box.options.length-1; j++)  {

box.options[j].value = box.options[j+1].value;

box.options[j].text = box.options[j+1].text;

}

var ln = i;break;

   }

}

if(ln < box.options.length)  {

box.options.length -= 1;

BumpUp(box);

   }

}

function SortD(box)  {

var temp_opts = new Array();                 

var temp = new Object();                      

for(var i=0; i<box.options.length; i++)  {  

temp_opts[i] = box.options[i];

}

for(var x=0; x<temp_opts.length-1; x++)  {

for(var y=(x+1); y<temp_opts.length; y++)  {

if(temp_opts[x].text > temp_opts[y].text)  {

temp = temp_opts[x].text;

temp_opts[x].text = temp_opts[y].text;

temp_opts[y].text = temp;

temp = temp_opts[x].value;

temp_opts[x].value = temp_opts[y].value;

temp_opts[y].value = temp;

      }

   }

}

for(var i=0; i<box.options.length; i++)  {

box.options[i].value = temp_opts[i].value;

box.options[i].text = temp_opts[i].text;

   }

}

</script>

</head>

<body>

<form ACTION="" METHOD="POST">

<table border="0">

<tr>

<td><select multiple size="5" name="list1">

<option value="l1">A</option>

<option value="l2">B </option>

<option value="l3">C</option>

<option value="l4">D</option>

</select></td>

<td>

<input type="button" value="向右"  οnclick="move(this.form.list1,this.form.list2)" name="B1"><br>

<input type="button" value="向左"  οnclick="move(this.form.list2,this.form.list1)" name="B2">

</td>

<td><select multiple size="5" name="list2">

<option value="r1">E</option>

<option value="r2">F </option>

<option value="r3">G</option>

<option value="r4">H</option>

</select></td>

</tr>

</table>

</form>

</body>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值