管理杂谈OA答疑ERP答疑教程搜索

左右两个Select列表框交换数据的JS


左右两个select列表框交换数据的js代码,上下左右都可以移动数据,还可以置顶、沉底,相信大家见到过,但觉得挺实用,与大家分享。

<title>

    select列表框交换数据

</title>

<style>

center

 {

  

  color:red;

  font-weight:bold;

 }

 select

 {

  

  color:green;

 }

</style>

<span id="feedback"></span> 

<table border="0" width="400">

    <tbody>

        <tr class="firstRow">

            <td>

                <center>

                    可选择排序方式

                </center>

            </td>

            <td></td>

            <td>

                <center>

                    已选择排序方式

                </center>

            </td>

        </tr>

        <tr>

            <td width="40%">

                <select multiple="" name="left" id="left" size="8" style="width:200;" ondblclick="moveoption(document.getelementbyid('left'), document.getelementbyid('right'))"><option value="20">

                    asp

                </option>

                <option value="30">

                    php

                </option>

                <option value="40">

                    asp.net

                </option>

                <option value="50">

                    jsp

                </option>

                <option value="60">

                    vb

                </option>

                <option value="70">

                    delphi

                </option>

                <option value="80">

                    ajax

                </option>

                <option value="90">

                    jquery

                </option></select>

            </td>

            <td width="20%" align="center">

                <input type="button" value=" >> " onclick="moveoption(document.getelementbyid('left'),document.getelementbyid('right'))"/><br/><br/>

  <input type="button" value=" << " onclick="moveoption(document.getelementbyid('right'), document.getelementbyid('left'))"/>

            </td>

            <td width="40%">

                <select multiple="" name="right" id="right" size="8" style="width:200;" ondblclick="moveoption(document.getelementbyid('right'), document.getelementbyid('left'))"></select>

            </td>

        </tr>

        <tr>

            <td colspan="3">

                <center>

                    <input type="button" value="置顶" onclick="movetop(document.getelementbyid('right'));"/><input type="button" value="上移" onclick="moveup(document.getelementbyid('right'));"/><input type="button" value="下移" onclick="movedown(document.getelementbyid('right'));"/><input type="button" value="置底" onclick="movebottom(document.getelementbyid('right'));"/>

                </center>

            </td>

        </tr>

    </tbody>

</table><script language="javascript">

​<!--

 //上移

  function moveup(obj)

  { 

      for(var i=1; i < obj.length; i++)

      {//最上面的一个不需要移动,所以直接从i=1开始

        if(obj.options[i].selected)

        {

          if(!obj.options.item(i-1).selected)

          {

            var seltext = obj.options[i].text;

            var selvalue = obj.options[i].value;

      obj.options[i].text = obj.options[i-1].text;

      obj.options[i].value = obj.options[i-1].value;

      obj.options[i].selected = false;

      obj.options[i-1].text = seltext;

      obj.options[i-1].value = selvalue;

      obj.options[i-1].selected=true;

          }

        }

      }

    }

  //下移

  function movedown(obj)

    {

      for(var i = obj.length -2 ; i >= 0; i--)

      {//向下移动,最后一个不需要处理,所以直接从倒数第二个开始

        if(obj.options[i].selected)

        {

          if(!obj.options[i+1].selected)

          {

            var seltext = obj.options[i].text;

            var selvalue = obj.options[i].value;

      obj.options[i].text = obj.options[i+1].text;

      obj.options[i].value = obj.options[i+1].value;

     obj.options[i].selected = false;

    obj.options[i+1].text = seltext;

    obj.options[i+1].value = selvalue;

   obj.options[i+1].selected=true;

          }

        }

      }

    }

  //移动

  function moveoption(obj1, obj2)

  {

    for(var i = obj1.options.length - 1 ; i >= 0 ; i--)

    {

     if(obj1.options[i].selected)

     {

     var opt = new option(obj1.options[i].text,obj1.options[i].value);

     opt.selected = true;

     obj2.options.add(opt);

     obj1.remove(i);

    }

    }

  }

  //置顶

   function  movetop(obj) 

   { 

   var  opts = []; 

   for(var i =obj.options.length -1 ; i >= 0; i--)

   {

    if(obj.options[i].selected)

    {

     opts.push(obj.options[i]);

     obj.remove(i);

    }

   }

   var index = 0 ;

   for(var t = opts.length-1 ; t>=0 ; t--)

   {

    var opt = new option(opts[t].text,opts[t].value);

    opt.selected = true;

    obj.options.add(opt, index++);

   }

  } 

   //置底

   function  movebottom(obj) 

   { 

   var  opts = []; 

   for(var i =obj.options.length -1 ; i >= 0; i--)

   {

    if(obj.options[i].selected)

    {

     opts.push(obj.options[i]);

     obj.remove(i);

    }

   }

    for(var t = opts.length-1 ; t>=0 ; t--)

   {

    var opt = new option(opts[t].text,opts[t].value);

    opt.selected = true;

    obj.options.add(opt);

   }

  } 

 //-->

</script>


更多精彩文章浏览...
点击右上角图标分享到朋友圈
官方网站:http://www.clicksun.cn
咨询热线:400-186-1886
服务邮箱:service@clicksun.cn