Select multiple多选上移、下移

Select multiple多选上移、下移

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<TITLE> Select Demo </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<style>
    center
    {
        font-size:12px;
        color:red;
        font-weight:bold;
    }
    select
    {
        font-size:12px;
        color:green;
    }
</style>

<BODY>
    <span id='feedback'></span>
    
    <form method="post" name="myform">
  <table border="0" width="400">
 <tr>
  <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">测试数据一</option>
       <option value="30">测试数据二</option>
       <option value="40">测试数据三</option>
       <option value="50">测试数据四</option>
       <option value="60">测试数据五</option>
       <option value="70">测试数据六</option>  
       <option value="80">测试数据七</option>
       <option value="90">测试数据八</option>  

  </select>
   </td>
      <td width="20%" align="center">
  <input type="button" value=" >> " οnclick="moveOption(document.getElementById('left'),document.getElementById('right'))"><br><br>
  <input type="button" value=" << " οnclick="dropOption(document.getElementById('right'))">
   </td>
      <td width="40%">
  <select  multiple name="right" id="right" size="8" style='width:200;'
  ondblclick="dropOption(document.getElementById('right'))">
  </select>
   </td>
    </tr>
<tr>
<td colspan="3"><CENTER>
    <INPUT TYPE="button" value="置顶" οnclick="moveTop(document.getElementById('right'));">
    <INPUT TYPE="button" value="上移" οnclick="moveUp(document.getElementById('right'));">
    <INPUT TYPE="button" value="下移" οnclick="moveDown(document.getElementById('right'));">
    <INPUT TYPE="button" value="置底" οnclick="moveBottom(document.getElementById('right'));">
</CENTER></td>
</tr>
  </table>
    
 
</BODY>
</HTML>


<SCRIPT LANGUAGE="JavaScript">
<!--
    //上移
    function moveUp(obj){
        for(var i=1; i < obj.options.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.options.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 (obj2.options.length > 0){
                var exsits = false;
                for (var j = 0; j < obj2.options.length; j ++ ){
                    if (obj2.options[j].value == obj1.options[i].value){
                        exsits = true;
                        break;
                    }
                }
                if(exsits){
                    continue;
                }
            }
            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 dropOption(obj){
        for(var i = obj.options.length - 1 ; i >= 0 ; i--){
            if(obj.options[i].selected){
                obj.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>

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113502.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql中联合索引abc 使用bac_mysql 联合索引

    mysql中联合索引abc 使用bac_mysql 联合索引mysql联合索引详解联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是keyindex(a,b,c).可以支持a|a,b|a,b,c3种组合进行查找,但不支持b,c进行查找.当最左侧字段是常量引用时,索引就十分有效。两个或更多个列上的索引被称作复合索引。利用索引中的附加列,您可以缩小搜索的…

    2022年5月24日
    61
  • Linux-nmap命令使用

    Linux-nmap命令使用用namp对局域网扫描一遍,然后查看arp缓存表就可以知道局域内ip-mac的对应了namp比较强大也可以直接扫描mac地址和端口进行ping扫描,打印出对扫描做出响应的主机:  nmap-sP192.168.1.0/24仅列出指定网络上的每台主机,不发送任何报文到目标主机:  nmap-sL192.168.1.0/24  探测目标主机开放的端口,可以指定一个以…

    2022年5月13日
    34
  • Java中使用double转BigDecimal的问题

    Java中使用double转BigDecimal的问题先上结论:不要直接用double变量作为构造BigDecimal的参数。线上有这么一段Java代码逻辑:1,接口传来一个JSON串,里面有个数字:57.3。2,解析JSON并把这个数字保存在一个float变量。3,把这个float变量赋值给一个BigDecimal对象,用的是BigDecimal的double参数的构造:newBigDecimal(doubleval)4,把这个BigDecimal保存到MySQL数据库,字段类型是decimal(15,2)。…

    2022年5月24日
    136
  • es6的map和set的区别_sleep和wait的区别

    es6的map和set的区别_sleep和wait的区别SetSet对象可以存储任何类型的数据。值是唯一的,没有重复的值。特殊值:+0与-0恒等,不重复。undefined与undefined恒等,不重复。NaN与NaN不恒等,但在Set中只能存一个,不重复。应用:数组去重使用Set值是唯一的特点可以对数组进行去重。vararr=[…newSet([1,5,4,4,7,6,6]…

    2022年9月6日
    2
  • golang嵌入式开发_持续集成平台对比

    golang嵌入式开发_持续集成平台对比Drone官方示例-ExampleGoproject用Docker部署Go服务器Golang官方示例-outyet一个生产环境的例子实际的DevOps项目中,在pipeline流水线中包含下载代码、测试、构建、发布、部署、通知等步骤。基本流程如下,当然不同的语言或不同的需求下流程会有所差异:clone-&amp;amp;gt;test-&amp;amp;gt;build…

    2022年8月15日
    2
  • 布朗运动 金融学_布朗运动数学定义

    布朗运动 金融学_布朗运动数学定义作者:郑连虎来源:阿虎定量笔记正文:巴舍利耶:金融数学之父——要点:布朗运动、有效市场假说即使在信息爆炸的今天,想要了解法国数学家路易斯·巴舍利耶(LouisBachelier,1870-1946)的生活,依然缺乏资料。同许多思想超前的开拓者一样,巴舍利耶的研究成果在当时未能引起学界重视,直至50多年后被保罗·萨缪尔森…

    2022年9月30日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号