更新动态运行时未发布的选定选项



我可能在这里错过了一些明显的东西。我是天选之选的新手,所以请忍受我的无知。我正在使用带有 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");将负责其余的工作。

最新更新