禁用所选选项后,select2不会更新

时间:2016-05-23 12:43:59

标签: javascript jquery jquery-select2 select2

我尝试在select2中禁用所选选项,但似乎select2没有刷新。

我的目的是在选择后禁用select2列表中的每个项目。我看到该选项获得了禁用属性的HTML,但仍然在select2元素中启用了该选项。

$("#select-filter").select2({
    placeholder: "Select a category",
    data:[{
        id: "",
        text: ""
    },{
        id: "project",
        text: "project"
    },{
        id: "date",
        text: "date"
    },{
        id: "user",
        text: "user"
    }]
}).on("change", function(e) {
    $("#select-filter :selected").attr("disabled", "true");
});

参见示例:https://jsfiddle.net/bkqeqbay/1/

1 个答案:

答案 0 :(得分:1)

您可以使用select事件和数据,如下所示:

...}).on("select2:select", function(e) {
  console.dir(e.params.data);
  e.params.data.disabled = true;
});

更新了小提琴:https://jsfiddle.net/bkqeqbay/4/

请注意,如果您还必须禁用基础选择元素选项,则可以执行以下操作:

 var index = $(e.params.data.element).index();
 $("#select-filter").find('option').eq(index).prop('disabled',true);