选择 select2 的 allowClear 选项时如何捕获事件?

Posted

技术标签:

【中文标题】选择 select2 的 allowClear 选项时如何捕获事件?【英文标题】:How to capture event when allowClear option of select2 is chosen? 【发布时间】:2015-03-19 20:58:38 【问题描述】:

我已尝试捕获select2:clearing 事件

$("#my-select").on("select2:clearing", function (e) 
    console.log('cleared');
);

(jsfiddle)

但它没有被解雇。我也尝试过其他版本(如select2:removed 等,见another question 有类似问题),但它也不起作用。

我使用 select2 4.0.0-beta2。

【问题讨论】:

从未使用过这个库,但在文档中,事件名称中使用破折号而不是冒号,例如select2-清除 @MarioA,我尝试过破折号,但当前的文档(参见select2.github.io/examples.html,事件部分)说的是冒号。 【参考方案1】:

select2 4.0.0-beta2 的更新日志指出:

删除的事件

select2-clearing - Use select2:unselecting instead

https://github.com/select2/select2/releases

【讨论】:

奇怪。事件 select2:selecting 正在工作,请参阅:jsfiddle.net/1vgLnjbb/1 我认为这是测试版中的错误。您应该在 github 上提交错误报告 你是对的,马里奥 - github.com/select2/select2/issues/2954。感谢您的帮助。 "select2:unselecting 在删除选择之前触发。可以防止此事件。"但是console.log($select.select2('data')) 在这个事件上返回一个空数组【参考方案2】:

这行得通:

$("#my-select").on("select2:unselecting", function(e) 

 );

【讨论】:

【参考方案3】:
$("#my-select").on("select2:select select2:unselecting", function(e) 
   //do something here
 );

【讨论】:

【参考方案4】:

根据select2 event documentations,所有的unselect、unselecting、clear和clearing事件都会起作用!

但请考虑 usnselectunselecting 事件应该由 单选 模式使用,并且 clear 或 多选模式应该使用em>clearing。因此,如果所有选定的项目都已清除或清除,则清除或清除将触发。

取消选择和取消选择之间的区别在于,取消选择会在删除选择之前触发,因此您可以阻止它。

希望对你有帮助。

【讨论】:

以上是关于选择 select2 的 allowClear 选项时如何捕获事件?的主要内容,如果未能解决你的问题,请参考以下文章

select2使用ajax加载数据无法选择任何选项

select2输入框不刷新默认值

Vuejs自定义select2指令

select2插件的使用

select2 ajax加载数据,支持模糊查询(非本地)

select2:无法读取未定义的属性“id”