我有一个select2多标签控件(在我的情况下限制为2),其中标签的位置很重要。
我列出了select2-removed事件,并希望找到要删除的标记的位置。
我可以打破remove事件并检查e,但这会给我元素的id,而不是标记字段中的位置。
$('#mytags').on('select2-removed', function(e){
console.log('removed', e)
});
如何确定删除了哪个标记(第一个或第二个)?
答案 0 :(得分:2)
当select2-removed
事件触发时,该项目已被删除,因此您无法在此时检查Select2控件的值。但是,您可以检查select2-removing
事件何时触发。然后,如果您想要在select2-removed
事件时删除项目的位置,则可以将其存储在select元素的data
值中。
$('#mytags').on('select2-removing', function(e) {
var $select = $(this);
$select.data('select2-removedIndex', $select.select2('val').indexOf(e.val));
}).on('select2-removed', function(e) {
alert($(this).data('select2-removedIndex'));
})