我想对select中的项目进行排序,但是我发现的所有解决方案都选择了select中的最后一项。如果您在表单中编辑现有数据,就会出现问题。

如何解决呢?

请不要问我,为什么我没有在服务器端对项目进行排序。

最佳答案

我的解决方案

    function sortValues() {
        var sortedValues = $.makeArray($('.selectSort option')).sort(function(a, b) {
            return $(a).text() > $(b).text() ? 1 : -1;
        });
        $('.selectSort').empty().html(sortedValues);
    };

    $(document).ready(function() {
        var selected = $(".selectSort option:selected").val();
        sortValues();
        if (!$(".selectSort option:selected").length) {
            $(".selectSort").val(0);
        } else {
            $(".selectSort").val(selected);
        }
    });

07-24 20:56