Extjs 4 中,表单的回车事件

可以提交,可以执行其它函数。

代码节选如下:


       // 监听回车
        listeners: {
            afterRender: function(thisForm, options){
                this.keyNav = Ext.create('Ext.util.KeyNav', this.el, {
                    enter: function(){

                		// 筛选表格
            			var btn = Ext.getCmp('filter_button');
            			btn.handler() ;
            			console.log( this );
                	},
                    scope: this
                });
            }
        },

完整的代码如下:

    // 筛选表单
    // ============================
    var filterForm = Ext.widget({
        xtype: 'form',
        layout: 'form',
        collapsible: true,
        id: 'filterForm',
        url: '',
        frame: true,
        title: '筛选条件',
        bodyPadding: '5 5 0',
        margin: 5,
        width: 350,
        fieldDefaults: {
            msgTarget: 'side',
            labelWidth: 75
        },
        defaultType: 'textfield',
        
        // 监听回车
        listeners: {
            afterRender: function(thisForm, options){
                this.keyNav = Ext.create('Ext.util.KeyNav', this.el, {
                    enter: function(){

                		// 筛选表格
            			var btn = Ext.getCmp('filter_button');
            			btn.handler() ;
            			console.log( this );
                	},
                    scope: this
                });
            }
        },
        
        items: [{
            fieldLabel: 'Parent id',
            id: 'parent_id',
            name: 'parent_id',
            allowBlank: true
        },{
            fieldLabel: 'code',
            id: 'code',
            name: 'code',
            allowBlank: true,
            listeners : {
	            specialkey : function(field, e) {
        	
        			console.log( e.getKey() );
        			
            		var btn = Ext.getCmp('filter_button');

            		console.log( btn );
            		
	                if (e.getKey() == Ext.EventObject.ENTER) {
	                  //doLogin();
	            		
	            		//btn.handler() ; // 回车筛选数据。
	            		
	                }
	            } // end of specialkey
        	} // end of listeners
            
            
            
            
        },{
            fieldLabel: 'name',
            id: 'name',
            name: 'name',
            allowBlank: true
        }],

        buttons: [{
        	id: 'filter_button' ,
            text: 'Filter',
            handler: function(){
        	
        	console.log( 'doFilter() function start.' );

        	
        	// 表单有效
            this.up('form').getForm().isValid();
        	//filterForm.isValid();
            
            //console.log( this.up('form').getForm() );
            
            // 输入值
        	var parent_id = Ext.getCmp('parent_id').getValue();
            console.log( parent_id );
            
        	var code = Ext.getCmp('code').getValue();
            console.log( code );
            
        	var name = Ext.getCmp('name').getValue();
            console.log( name );

        	// 加载数据
        	store.load({
        		params:
        		{ 
        			 start:0
        			,limit:25
        		}
        	});
        }
        },{
            text: 'Reset',
            handler: function() {
                this.up('form').getForm().reset();
            }
        }]
    });


你可能感兴趣的:(Extjs4,Javascript,extjs,function,filter,button,layout,url)