2016-05-23 53 views
0

我试图禁用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/

+0

您正在使用哪种浏览器? ---试试'$(“#select-filter:selected”)。prop(“disabled”,true);' –

+0

@Amani chrome,已经试过了 - 没有帮助 – Mojo

+1

我试过你的代码和chrome工作 - https://jsfiddle.net/bkqeqbay/ –

回答

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);