就这点分就想拿来砸人?!?
http://jkisjk.vip.sina.com/html/moveRightOrLeft.htm

解决方案 »

  1.   

    select中的option 是一个数组,想对它们排序也就是对这个数级去排序
      

  2.   

    <form action="" method="GET">
    <select name="sortsele" size="10" style="WIDTH: 200px"  multiple>
      <option value="1" >liu</option>
     <option value="2" >liu1</option>
     <option value="3" >liu2</option>
     <option value="4" >liu3</option>
     <option value="5" >liu4</option>
     <option value="6" >liu5</option>
     <option value="7" >liu6</option>
     <option value="8" >liu7</option>
     <option value="9" >liu8</option>
     <option value="10" >liu9</option>
    </select>
    <input type="button" value="上" onclick="uup()" name="up" />
    <input type="button" value="下" onclick="ddp()" name="down"/>
    </form>
    <script language='javascript'>
      //upup
      function uup()
      {
         var sel=document.forms[0].sortsele;
         if(!sel) return false;
         if(sel.length<0)return false;
         if(sel.selectedIndex<=0) return false;
         t_value=sel.options[sel.selectedIndex-1].value
         t_text=sel.options[sel.selectedIndex-1].text
         sel.options[sel.selectedIndex-1].value= sel.options[sel.selectedIndex].value
     sel.options[sel.selectedIndex-1].text= sel.options[sel.selectedIndex].text
     sel.options[sel.selectedIndex].value=t_value;
     sel.options[sel.selectedIndex].text=t_text;
      }
      
       //dndn
      function ddp()
      {
         var sel=document.forms[0].sortsele;
         if(!sel) return false;
         if(sel.length<0)return false;
         if(sel.selectedIndex>=sel.length-1) return false;
         t_value=sel.options[sel.selectedIndex+1].value
         t_text=sel.options[sel.selectedIndex+1].text
         sel.options[sel.selectedIndex+1].value= sel.options[sel.selectedIndex].value
     sel.options[sel.selectedIndex+1].text= sel.options[sel.selectedIndex].text
     sel.options[sel.selectedIndex].value=t_value;
     sel.options[sel.selectedIndex].text=t_text;
      }
     </script>没考虑多选,如果可以多选换位,根据需要自己写程序吧。
      

  3.   

    多谢上面几位老兄帮忙,但是有个问题,js排序的结果要传至jsp中,也就是我要在js初步排序好之后将结果更新到数据库,这样就要包括各option以及value,怎么记录呢?
      

  4.   

    怎么选取下拉列表中所有数据呢?
    比如下面select中:
    <select name=ObjSelect size=6 style="font-size:11pt;width=200;height=160px" multiple > 
    <option value="1">test1</option> 
    <option value="2">test2</option> 
    <option value="3">test3</option> 
    <option value="4">test4</option> 
    <option value="5">test5</option> 
    <option value="6">test6</option> 
    </select>
    想获取此列表中所有数据要怎么写呢?
    包括取得value和”test1“之类的结果,或者单取value,不过取得全部的option的value
      

  5.   

    <script language='javascript'>
      //首先全选这个select,然后提交标单。
    function sss()
    {
         var sel=document.forms[0].sortsele;
         if(!sel) return false;
         if(sel.length<0)return false;
         for(var i=0;i<sel.length;i++)
       {
          sel.options[i].selected=true;
       }
       document.forms[0].submit();
    }</script>
      

  6.   

    加一个hidden表单,id为iHidden
    var str="";
    var sel=document.forms[0].sortsele;
    for(var i=0;i<sel.options.length;i++){
    str+=sel.options[i].value+",";
    }
    document.forms[0].iHidden.value=str;
      

  7.   

    想提交value全选就可以了,text就比较麻烦了,如果可以的话,把value的值设成和text一样,不行的话就处理一上
    用字符串应该比较灵活些
    1,2,3,4,5,6
    test1,test2,test3,test4,test5,test6
    这样到后台一split就可以了
      

  8.   

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
    <title>新用户注册</title>
    <script language="javascript" type="text/javascript">
    function optMove(num){
    var dlt=document.getElementById("dltSort");
    //alert(dlt.selectedIndex);
    if(dlt.selectedIndex < 0) return ;
    if((dlt.selectedIndex==0 && num==-1) || (dlt.selectedIndex == (dlt.options.length-1) && num==1)) return;
    var opt=dlt.options[dlt.selectedIndex];
    var opt1=dlt.options[dlt.selectedIndex+num];
    chg(opt,opt1);
    opt1.selected=true;
    }
    function chg(opt1,opt2){
    var tmp="";
    tmp=opt1.value; opt1.value=opt2.value; opt2.value=tmp;
    tmp=opt1.text; opt1.text=opt2.text; opt2.text=tmp;
    }
    </script>
    </head><body ><select id="dltSort" size="6">
    <option value="1">test1</option>
    <option value="2">test2</option>
    <option value="3">test3</option>
    <option value="4">test4</option>
    <option value="5">test5</option>
    </select>
    <input type="button" value="向上" onclick="optMove(-1)">
    <input type="button" value="向下" onclick="optMove(1)">
    </body>
    </html>
      

  9.   

    加一个hidden表单,id为iHidden
    var str="";
    var sel=document.forms[0].sortsele;
    for(var i=0;i<sel.options.length;i++){
    str+=sel.options[i].value+",";
    }
    document.forms[0].iHidden.value=str;
      发现这个方法实在不错,但有几点不太明白,在页面声明hidden的id为iHidden就可以了吗?这个function是谁提交?在我的action或者servlet里面怎么接收hidden的值?
    我没想明白,请大家指正我的代码:
    <%@page contentType="text/html; charset=GBK"%>
    <%@page import="java.util.*"%>
    <%@page import="bms.db.ConnDB"%>
    <html>
    <head>
    <title>排序</title>
    </head>
    <body bgcolor="#ffffff">
    <%  
      String[] myString = {
          "a", "b", "c", "d", "e"};
      LinkedList list = new LinkedList();
      for (int i = 0; i < myString.length; i++) {
        list.add(i, myString[i]);
      }
    %><script language=javascript">
    function moveUp()
    {
    var theObj=document.all.sortsele;
    for(var i=1;i<theObj.length;i++)
    {
    if( theObj.options[i].selected && !theObj.options[i-1].selected )
    {
    var tempOption=new Option(theObj.options[i-1].text,theObj.options[i-1].value);
    theObj.options[i-1].removeNode(true);
    theObj.add(tempOption,i);
    }
    }
    }function moveDown()
    {
    var theObj=document.all.sortsele;
    for(var i=theObj.length-2;i>-1;i--)
    {
    if( theObj.options[i].selected && !theObj.options[i+1].selected )
    {
    var tempOption=new Option(theObj.options[i].text,theObj.options[i].value);
    theObj.options[i].removeNode(true);
    theObj.add(tempOption,i+1);
    theObj.options[i+1].selected=true;
    }
    }
    }function hidd(){
            //不知道是不是这样写,请指出
    var str="";
    var sel=document.forms[0].sortsele;
    for(var i=0;i<sel.options.length;i++){
    str+=sel.options[i].value+",";
    }
    document.forms[0].iHidden.value=str;
    }
    </script><form name="sortform" method="GET" action="SortAction.do">
    <select name="sortsele" size="10" style="WIDTH: 200px" multiple>
    <%for (int i = 0; i < list.size(); i++) {%>
      <option value="<%=list.get(i)%>"><%=list.get(i)%>  </option>
    <%}%>
    </select>
    <input type="hidden" id="iHidden" />
    <input type="button" value="上" name="up" onclick="moveUp()"/>
    <input type="button" value="下" name="down" onclick="moveDown()"/>
    <br/>
    <hr/>
    <input type="submit" value="提交排序结果"/>
    </form>
    </body>
    </html>
      

  10.   

    或者我想也有另外一个方法:就是在我提交form之前先onclik一个js的function,在function是全部选中select所有option的方法,但是这个我不知道写,js真的是不熟悉,如果有人觉得可行,不妨写出来看一看,多谢了!
      

  11.   

    全选:
    for(i=0;i<document.all['dltSort'].length-1;i++){
          document.all['dltSort'].options[i].selected = true;
    }
      

  12.   

    <script language='javascript'>
      //首先全选这个select,然后提交标单。
    function sss()
    {
         var sel=document.forms[0].sortsele;
         if(!sel) return false;
         if(sel.length<0)return false;
         for(var i=0;i<sel.length;i++)
       {
          sel.options[i].selected=true;
       }
       document.forms[0].submit();
    }</script>这段代码你没看?
      

  13.   

    汗啊,precipitant(塞北的雪) ,你厉害!结贴了,结贴了!给分啦!