select2 select2-removed事件查找标记位置

时间:2015-02-09 19:59:47

标签: tags jquery-select2

我有一个select2多标签控件(在我的情况下限制为2),其中标签的位置很重要。

我列出了select2-removed事件,并希望找到要删除的标记的位置。

我可以打破remove事件并检查e,但这会给我元素的id,而不是标记字段中的位置。

$('#mytags').on('select2-removed', function(e){

     console.log('removed', e)

});

如何确定删除了哪个标记(第一个或第二个)?

1 个答案:

答案 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'));
})

jsfiddle