Ext.form.ComboBox 中如何移除事件,如何添加事件
背景:
希望Ext.form.ComboBox动态设置forceSelection属性,动态控制Combobox的可读可写状态,是否允许任意输入。
但是ComboBox对象并没有setForceSelection()方法,不能通过对象直接设置forceSelection属性。
如:
Ext.getCmp("shoukuanrenCombobox").setForceSelection(true); // 方法报错,setForceSelection()方法不存在
目标:
期望实现动态控制Ext.form.ComboBox的可读可写,是否允许任意输入。
解决:
通过Ext源码,拿到on(),un()两个方法,通过on(),un()两个方法直接设置forceSelection属性对应的事件
on():
addListener: function (A, C, B, F) {
un():
removeListener: function (A, C, B) {
代码如:
// 实现forceSelection = true属性,即添加"blur"事件
Ext.getCmp("shoukuanrenCombobox).on("blur", Ext.getCmp("shoukuanrenCombobox).doForce, Ext.getCmp(shoukuanrenCombobox));
Ext.getCmp("kaihuhangCombobox).on("blur", Ext.getCmp("kaihuhangCombobox).doForce, Ext.getCmp(kaihuhangCombobox));
// 实现forceSelection = false属性,即移除"blur"事件
Ext.getCmp("shoukuanrenCombobox).un("blur", Ext.getCmp("shoukuanrenCombobox).doForce, Ext.getCmp(shoukuanrenCombobox));
Ext.getCmp("kaihuhangCombobox).un("blur", Ext.getCmp("kaihuhangCombobox).doForce, Ext.getCmp(kaihuhangCombobox));