2010-06-03 9 views

Respuesta

14

Puede usar una función Javascript JQuery como se muestra a continuación. No lo he probado completamente, pero debe funcionar.

function Sortit() { 
     var $r = $("#MySelect option"); 
     $r.sort(function(a, b) { 
      if (a.text < b.text) return -1; 
      if (a.text == b.text) return 0; 
      return 1; 
     }); 
     $($r).remove(); 
     $("#MySelect").append($($r)); 
     } 

Aquí su etiqueta de selección debe tener un Id. MySelect. También puede hacer esto usando javascript simple. Esto ordenará por el texto mostrado de las opciones. En cambio, si desea ordenar por el valor de cada opción, se utiliza una especie de la siguiente manera

$r.sort(function(a, b) { 
       return a.value-b.value; 
      }); 
0

Si no les importa usar un plug-in de jQuery, Tablesorter hace un buen trabajo.

1

he usado un método muy similar al @ josephj1989. Sin embargo, si su menú desplegable tiene cadenas como valores, aún necesita asignar los valores 1, -1 o 0 (al menos lo hice de todos modos).

function SortList(listname) { 
    var $r = $(listname + " option"); 
    $r.sort(function(a, b) { 
     return (a.value < b.value) ? -1 : (a.value > b.value) ? 1 : 0; 
     //or you can have a.text, b.text, etc 
    }); 
    $($r).remove(); 
    $(listname).append($($r)); 
} 
Cuestiones relacionadas