![](/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.