Kendo ui KendoUI Multiselect删除多个
我正在使用剑道UI Multiselect: 我有以下数据:Kendo ui KendoUI Multiselect删除多个,kendo-ui,multi-select,kendo-multiselect,Kendo Ui,Multi Select,Kendo Multiselect,我正在使用剑道UI Multiselect: 我有以下数据: var data = [ { text: "Shirt-Black", value: "1" }, { text: "Shirt-Brown", value: "2" }, { text: "Shirt-Blue", value: "3" }, { text: "Cap-Green", value: "4" }, { text: "Cap-Red
var data =
[
{ text: "Shirt-Black", value: "1" },
{ text: "Shirt-Brown", value: "2" },
{ text: "Shirt-Blue", value: "3" },
{ text: "Cap-Green", value: "4" },
{ text: "Cap-Red", value: "5" },
{ text: "Cap-White", value: "6" },
{ text: "Jacket-Denim", value: "7" }
];
现在我想知道,如果我选择Shirt Brown,则Shirt的其余条目(即Shirt Black和Shirt Blue)不应出现在列表中,这意味着用户不能选择两种颜色的衬衫
类似地,如果选择了任何颜色的封顶,则用户不能选择任何其他颜色的封顶
有没有办法做到这一点?这不是内置功能。您甚至不能使用dataSource筛选器方法,因为它也将从列表中删除选定项 但是,此代码将满足您的要求:
$("#select").kendoMultiSelect({
...
change: function(e) {
var dataItems = e.sender.dataItems();
var categories = [];
for(var i = 0; i < dataItems.length; i++){
var category = dataItems[i].text.substring(0, dataItems[i].text.indexOf('-'));
categories.push(category);
}
e.sender.ul.find('li').each(function(index, value){
var $li = $(value);
var hidden = false;
for(var i = 0; i < categories.length; i++){
var category = categories[i];
if ($li.text().match("^" + category)){
$li.css('display', 'none');
hidden = true;
}
}
if(!hidden){
$li.css('display', 'list-item');
}
});
}
});
正在工作的KendoUi Dojo: