我有这个下拉列表,我正在尝试获取 API 值并选择与其对应的值,但它始终选择第一个选项。
如何从 API 中获取下拉选项的正确值/文本?
视图的下拉列表:
<select class="form-control select2" data-toggle="select2" id="Status" name="Status"></select>
接口:
"Success": true,
"Message": "",
"Statuses": [
{
"Id": 1,
"Name": "Nuevo"
},
{
"Id": 2,
"Name": "Leído"
},
{
"Id": 3,
"Name": "Atendido"
}
]
下拉列表中填充了来自 API 的值,并且我有一个网格,我必须在其中更新数据的状态,并且在选择时,它必须从 api 中获取它的值
获取所有状态的函数:
function LoadMailboxStatus() {
var dropDown = $("#Status");
dropDown.empty();
$.ajax({
type: "GET",
url: "/Mailbox/GetStatuses/",
error: (result) => $.Notification.error(result),
dataType: 'json',
success: function (result) {
if (result.Success) {
var status = result.Statuses;
$.each(status, function (key, item) {
dropDown.append($('<option></option>').attr('value', item.Id).text(item.Name));
$('option', this).each(function () {
if ($(this).html() == item.Name) {
$(this).attr('selected', 'selected')
};
});
})
}
else {
$.Notification.error(result.Message);
}
}
});
}
从另一个 API 获取所有值以使用以前的 API 编辑状态的函数:
$dataTable.on("click", "a.edit", function () {
var $this = $(this);
$.ajax({
type: "GET",
url: "/Mailbox/GetMailboxById/" + $this.data('id'),
error: (result) => $.Notification.error(result),
success: function (result) {
if (result.Success) {
var mymailbox = result.Mailboxes[0];
$(FormMB.Id).val(mymailbox.Id);
$(FormMB.MailboxStatus).val(mymailbox.MailboxStatus);
LoadMailboxStatus();
}
else {
$.Notification.error(result.Message);
}
}
});
$mailboxModal.modal();
});