While I was working for the solution to the scenario that I had to copy list of location from one multiple select element to another. I had an issue that those location were not sorting alphabetically.After some googling and playing around, I come up with following solution
function sortSelectElement(selElement) {
var tmpAry = new Array();
for (var i=0;i<selElement.options.length;i++) {
tmpAry[i] = new Array();
tmpAry[i][0] = selElement.options[i].text;
tmpAry[i][1] = selElement.options[i].value;
}
tmpAry.sort();
while (selElement.options.length > 0) {
selElement.options[0] = null;
}
for (var i=0;i<tmpAry.length;i++) {
var op = new Option(tmpAry[i][0], tmpAry[i][1]);
selElement.options[i] = op;
}
return;
}
Hope it will helps for someone :)