I have the following code to sort the items in a dropdown list:
function sortDropDownListByText(selectId) {
$(selectId).html($(selectId + " option").sort(function(a, b) {
return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
}))
}
this works fine except in cases where, in my first item, i have a **"Please select and item from the list" message . . **
is there anyway i can sort the items in the select list and keep the "Please select entry" as the first item in the list always?
EDIT:
In response to some of the answers, the "Please select item always has a value of 0"
Remove the first item from the select box and then append it at the first position after the sort function.
How about always returning
-1
for that item?more dynamically:
Theoretically, I would approach the problem by removing the "Please select" entry, sorting the list, then append it again, once the sorting is done
First you have to preserve the selected value, and once you finished the sorting you re-select the preserved value.
is your function.
If the "Please select..." option has a certain value (here called "dummyVal") associated with it, you could use this in your comparison function: