我有一个包含类似
的组合的窗口 items: {
xtype: 'form',
items: {
xtype: 'combo',
id: 'combo',
queryMode: 'local',
displayField: 'name',
valueField: 'id',
store: Ext.create('Ext.data.Store', {
fields: ['id', 'name'],
data: [
{'id': '1', 'name': 'John Smith'},
{'id': '2', 'name': 'Albert Einstein'}
]
}),
listeners: {
change: function( combo, newValue, oldValue, eOpts ) {
alert('reset fire 1');
},
dirtychange:function( combo, isDirty, eOpts ) {
alert('reset fire 2');
},
select: function( combo, records, eOpts ) {
alert('reset fire 3');
}
}
}
}
我在组合中寻找一个事件当我调用将要触发的重置表单时。那可能吗? 这是我的代码 http://jsfiddle.net/KVrZ7/
答案 0 :(得分:1)
"变更"事件也不错:
listeners: {
change: function(field, val) {
if(!val) {
alert('reset');
}
}
}
请参阅:http://jsfiddle.net/KVrZ7/2/
另一种解决方案 - 你可以解雇"重置"表格(或字段)中的事件。在你的按钮中:
handler: function() {
window.down('form').getForm().reset();
window.down('form').fireEvent('reset'); //<--------- firing event
}
在你的组合中:
listeners: {
afterrender: function(f) {
f.up('form').on('reset', function() {//<----- getting a form and attach handler
alert('reset');
});
}
}