我的下拉值显示按字母顺序排列。但我不需要这样。因为当我添加值时,它会改变字母顺序。
例如,
我有很多功能
- Designer-- //子功能
附件设计器
..等等。
但我的下拉列表
Accessory Desinger,
- Desinger -
我的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) {
}
});
});
当我点击第一个下拉列表时,它会自动显示第二个下拉列表。
请帮我解决这个问题。
答案 0 :(得分:1)
如果您不知道如何更改服务器端的订单,则必须在客户端进行。
根据您的描述,我收集的结果是一个JSON
对象,每个项目都有Id
和Name
,并且您希望不是按名称迭代它们,而是通过id迭代它们。 / p>
因此,我建议您对代码进行以下更改:
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
对结果集进行排序。