为什么select2-removal事件不会在带有allowClear的select2中触发?

时间:2014-07-03 15:43:28

标签: javascript jquery jquery-select2

我想在我的select2中清除一个事件。 select2被allowClear: true初始化。然而事件

$select.on('select2-removed', function(event) {
    console.log(event);
});
使用清除按钮重置select2时,

不会触发。

6 个答案:

答案 0 :(得分:11)

select2 v4.0.3

class

适用于所有select2 Options & Events

答案 1 :(得分:9)

对我来说唯一有用的是'select2:unselect'事件......(在非多选框中)

答案 2 :(得分:5)

使用清除按钮时,我使用'select2-removed' - 事件代替'select2-removing'

至于为什么它不会触发我仍然无法实现。

答案 3 :(得分:5)

根据select2源代码,clear方法使用事件select2-clearing而不是select2-removing。所以你也应该听这个事件。

移除后

select2-clearingselect2-removing 触发select2-removed会在之后触发。

请注意,clear并不总是会触发select2-removed事件。看起来只有在实际从输入中删除元素时才会触发此事件。

答案 4 :(得分:2)

我想获取有关已移除事件时删除的元素的数据。以下代码为我工作;

 $('#selector').on('select2:unselect', function (e) {
        var data = e.params.data;           
    });

答案 5 :(得分:1)

如果您使用的是4或更高版本,请使用

$('#id').on('select2:unselecting', function (e) {
    alert('You clicked on X');
});

低于4版

$('#id').on('select2-removing', function (e) {
    alert('You clicked on X');
});

确保4或更高版本为 select2:取消选择 冒号(:)
少于4个版本,它是 select2删除 -(连字符)