0

我有一个窗口,包括一个像

       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/

4

1 回答 1

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

见:http: //jsfiddle.net/KVrZ7/4/

于 2013-08-08T03:54:52.373 回答