我有多选的easyui组合框。我对可以选择的项目数量进行了限制,因此如果您尝试选择超过限制的数量,它会提醒用户并且不允许选择该项目。这是我的代码。
$("#assessment_content_items_select_standards").combobox({
data: $rootScope.assessmentItemsFilters.selectedStandards,
valueField: 'value',
textField: 'label',
multiple: true,
onSelect: function (standard)
{
var selectedStandardsCount = 0;
angular.forEach($rootScope.assessmentItemsFilters.selectedStandards, function (stan) {
if (stan.selected == true) {
selectedStandardsCount++;
}
});
if (selectedStandardsCount >= 25) {
alert("You have reached the maximum selected standards allowed of 25");
}
else {
standard.selected = true;
}
},
onUnselect: function (standard) {
standard.selected = false;
}
});
在onSelect方法中,我得到了所选的计数,如果它超过25,它只会发出警报,并且它不会为该选择设置为真。
我遇到的问题是即使数据显示为选中,UI仍然会将项目显示为已选择:false。我已尝试以下方法取消选择,但我认为没有区别。
standard.selected = false
$("#assessment_content_items_select_standards").combobox('unselect', standard);
我的问题是如何阻止选项被选中,或者是否有更好的方法来限制下拉列表?
答案 0 :(得分:0)
试试这个:
$('#assessment_content_items_select_standards').combobox({
onSelect: function (standard) {
var count = $("div.combobox-item-selected").length;
if (count > 25) {
alert("You can only choose 25.");
$('#assessment_content_items_select_standards').combobox('unselect', standard. value);
}
}
});