【问题标题】:Update selected Options not posted when done dynamically更新动态完成时未发布的选定选项
【发布时间】:2014-02-01 21:23:49
【问题描述】:

我可能在这里遗漏了一些明显的东西。我对Chosen完全陌生,所以请忍受我的无知。 我将 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 调用有效,我得到了所需的值。

当我使用 trigger("chosen:updated");选择列表为空。评论时,我将值添加到列表中但未发布。

谁能告诉我我在这里错过了什么。

谢谢

【问题讨论】:

    标签: jquery jquery-chosen


    【解决方案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("chosen:updated")

    所以不要更新 selected 的 "ul.chosen-choices" 元素,只需选择所需的元素并调用 .trigger("chosen:updated");其余的会处理。

    【讨论】:

    • 非常感谢您发布此信息。今天对我帮助很大!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 2021-07-08
    • 2015-11-26
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    相关资源
    最近更新 更多