我可能在这里错过了一些明显的东西。我是天选之选的新手,所以请忍受我的无知。我正在使用带有 Asp.NET MVC 的选定选项进行选择多个。当用户手动选择值时,它工作正常。但是,当我使用 Ajax 调用来预选一些值(这些值已经存在于我与 Chosen 一起使用的选项列表中)时,不会发布任何选定的值。
这是我的代码的样子
$.ajax({ type: "POST",
url: "/Project/GetProjectCrewMemberIds",
traditional: true,
//dataType:'json',
data: { projectId: selectedProject },
success: function (data) {
$('ul.chosen-choices').empty();
$.each(data, function (index, item) {
$('ul.chosen-choices').append('<li class="search-choice"><span>' + item.text + '</span><a class="search-choice-close" data-option-array-index="' + item.value + '"></a></li>');
});
// $("#SelectedCrewMembersId").trigger("chosen:updated");
},
error: function (xhr, status, exp) {
alert(exp);
}
});
Ajax 调用有效,我得到了所需的值。
当我使用触发器("选择:更新")时;选择列表为空。评论时,我会将值添加到列表中,但未发布。
谁能告诉我我在这里错过了什么。
谢谢
最终我找到了解决方案,所以希望这对其他人有所帮助:
$.ajax({
type: "POST",
url: "/Project/GetProjectCrewMemberIds",
traditional: true,
//dataType:'json',
data: { projectId: selectedProject },
success: function (data) {
// $('ul.chosen-choices').empty();
$.each(data, function (index, item) {
$("#SelectedCrewMembersId option[value='" + item.value + "']").prop("selected", true);
});
$("#SelectedCrewMembersId").trigger("chosen:updated");
},
error: function (xhr, status, exp) {
alert(exp);
}
});
这只是更新 '' 中的选定值并调用 .trigger("选择:更新")
因此,与其更新所选元素的 "ul.chosen-choices" 元素,只需选择 并调用 .trigger("selected:update");将负责其余的工作。