2013-11-24 40 views
2

我正在使用Extjs 4.2,下面是代码。我已经定义了表单Id,但按钮事件无法获取值。奇怪的是,当我提交表单时,它会转到服务器端,我可以获取字段值。Extjs 4 get form Id

如何给ID值?

Ext.define('App.view.QuestionForm',{ 
    extend  : 'Ext.form.Panel', 
    alias  : 'widget.QuestionForm', 
    requires : ['Ext.data.Store'], 

    bodyPadding : 5, 
    defaults : {xtype : 'textfield' }, 

    id: 'question_form', 

    initComponent : function(){ 
     var me = this; 
     //me.id = 'question_form'; 

     me.items = me.buildItems(); 
     me.dockedItems = me.buildToolbars(); 
     me.callParent(); 
    }, 


    buildItems : function(){ 
     return [ 
     { 
      fieldLabel: 'ID', 
      name: 'id', 
      xtype: 'textfield', 
      anchor: '100%' 
     },   
     ]; 
    }, 
    buildToolbars : function(){ 
     return [{ 
      xtype : 'toolbar', 
      dock: 'top', 
      items : [ 

      { 
       xtype: 'button', 
       text:'Save', 
       handler: function(){ 
        var form = this.up('form').getForm(); 
        console.log("form :"+form.id); //undefined 

        form.submit({url: 'rs/question/save'});     
       } 
      },  


      ] 
     }]; 
    } 

}); 

感谢

+0

你用什么代替了上面的代码?对于'this.up('form')。getForm();'我得到了同样的错误'undefined' – Freakyuser

回答

2

您定义Ext.form.Panel组件的ID。 所以在处理程序只需使用:

var form = this.up('form'); 

用于获取Ext.form.Panel组件的实例。

当您调用Ext.form.Panel组件的方法getForm()时,它将返回基本没有定义ID的Ext.form.Basic组件。