2

我的下拉值显示字母顺序。但我不需要那样。因为当我添加值时,它会改变字母顺序。

例如,

我有很多功能

  1. -- 设计器-- // 子函数

  2. 配饰设计师

..很快。

但我的下拉菜单显示

  1. 配件设计师,

  2. ——设计师——。

我的 Jquery 代码在这里

 $('#dropdown').change(function () {
    $("#dropdown1").show();
    $.ajax({
        url: "/Jobs/dropdown1",
        type: 'GET',
        data: { 'dropdownId': $(this).val() },
        dataType: 'json',
        success: function (response) {
            if (response.Success) {
                $('#dropdown1').children().remove();

                $.each(response.dropdown1, dropdown (index, role) {
                    $('#dropdown1').append(
                        '<option value="' + dropdown1.Id + '">' +
                            dropdown1.Name +
                        '</option>');
                });
            }
        },
        error: function (xhr, status, error) {

        }
    });
});

当我单击第一个下拉菜单时,它会自动显示第二个下拉菜单。

请帮我解决这个问题。

4

1 回答 1

1

如果您不知道如何在服务器端更改订单,则必须在客户端进行。

根据您的描述,我收集到的结果是一个JSON对象,其中每个项目都具有Idand Name,并且您希望不是按名称而是按 id 来迭代它们。

因此,我建议对您的代码进行以下更改:

if (response.Success) {
    $('#Roles').children().remove();

    var results = [];
    // Converting the JSON object into an array
    $.each(response.Roles, function(index, role) {
        results.push(role);
    });

    // Sorting the array items by Id
    results.sort(function(a, b) {
        return a.Id - b.Id;
    });

    $.each(results, function (index, role) {
        $('#Roles').append(
            '<option value="' + role.Id + '">' +
                role.Name +
            '</option>');
    });
}

这应该Id在将项目添加到之前对结果集进行排序#Roles

于 2012-12-03T11:53:01.953 回答