这是我的傻瓜:http://jsfiddle.net/LUsMb/2779/
我尝试做的是制作一个复选框选择选项2,显示您选择了多少项,而不是显示项目列表。一切都有效,除了取消选择项目。我想这是因为我在evt.preventDefault
事件中致电select2-selecting
。这是我特定事件的代码:
.on('select2-selecting', function(evt) {
var newValue = evt.object.value;
var found = false;
var me = this;
var $me = $(me);
var arr = $me.select2('data');
arr.forEach(function(e) {
if(found) return;
if(newValue === e.value) {
found = true;
var index = arr.indexOf(e);
if(index === -1) console.error(e,"NOT FOUND IN ARRAY. ABORT ABORT ABORT.");
arr.splice(index, 1);
$me.select2('data',arr);
changeText(me);
evt.preventDefault();
}
});
我做evt.preventDefault()
因为我想从select2数据列表中删除该项而不是再次添加它(因为我不想让它以传统方式工作)。不幸的是,当我去取消选择一个项目时,它会正确地完成所有更新,除了在select2中 - 显示列表没有正确更新。我总是可以关闭并重新打开列表,但我强烈不愿意这样做。
之前有没有成功完成此操作?或者也许会知道从哪里开始?