![](/img/trans.png)
[英]Remove a selected item from multiple select2 box on removal of selected item from another multiple select 2 box
[英]Remove one item from selected elements in select2
我有很多选择的多重选择。 当选择“所有人”时,它将删除其他选中的对象;如果选择了其他人,并且选择了“所有人”,则应删除它。
删除另一个并保留“所有人”项目就可以了。 但是我有问题要保留其他人,而只能将所有人撤离。
目前,我有这样的事情:
resetGroupSelectionWhenEverybody: function() {
$(".group_ids").on("select2:select", function (e){
if (e.params.data.text === 'everybody') {
$('#scheduled_publication_groups_ids').select2({width: '50%'}).val(group_everybody_id).trigger("change");
} else {
if ($('[title="everybody"]').length > 0) {
var idToRemove = 0;
groupIdsData = $('#scheduled_publication_groups_ids').select2('data');
groupIdsData.forEach(function(e, i) {
if (e.text === 'everybody') {
idToRemove = i;
}
});
groupIdsData.splice(idToRemove, 1);
$('#scheduled_publication_groups_ids').select2({'data': groupIdsData}).trigger("change");
}
}
});
},
有了这个代码groupIdsData
是通联我想选择的元素(所有期待everybody
的小组)。 但是在我坚持要改变观点之后。 select2({'data': groupIdsData})
似乎不是正确的选择。
一些事情 :
idToRemove
答案是使用select2('val')
获取ID数组,然后使用它。 使用.val()
而不是完全select2对象的代码更好。
resetGroupSelectionWhenEverybody: function() {
$(".group_ids").on("select2:select", function (e){
if (e.params.data.text === 'everybody') {
$('#scheduled_publication_groups_ids').select2({width: '50%'}).val(group_everybody_id).trigger("change");
} else {
if ($('[title="everybody"]').length > 0) {
groupIds = $('#scheduled_publication_groups_ids').select2('val');
groupToKeep = groupIds.splice( $.inArray(group_everybody_id, groupIds), 1);
$('#scheduled_publication_groups_ids').select2({width: '50%'}).val(groupToKeep).trigger("change");
}
}
});
},
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.