更新选定的动态完成时未发布的选项

时间:2013-12-20 17:27:31

标签: jquery jquery-chosen

我可能在这里遗漏了一些明显的东西。我对选择完全是新手,因此我承担了我的无知。 我正在使用选择与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调用有效,我得到了所需的值。

当我使用触发器时(“选择:更新”);选择列表变空。评论时,我将值添加到列表中但未发布。

有人可以告诉我这里缺少的东西。

由于

1 个答案:

答案 0 :(得分:1)

最终我找到了解决方案,所以希望这有助于其他人:

            $.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(“selected:updated”)

因此,不要更新所选的“ul.chosen-choices”元素,只需选择所需的元素并调用.trigger(“selected:updated”);将照顾其余部分。