Extjs 4如何获取表单的ID?

3

我正在使用Extjs 4.2。以下是代码。我已经定义了表单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'});                
                }
            },       


            ]
        }];
    }

});

thanks


你用了什么代替上面的代码?我在this.up('form').getForm();处得到了相同的“未定义”错误。 - Freakyuser
1个回答

4
你需要定义 Ext.form.Panel 组件的 id。在 handler 中使用如下代码:
var form = this.up('form');

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

当您调用 Ext.form.Panel 组件的 getForm() 方法时,它将返回底层的 Ext.form.Basic 组件,该组件未定义 ID。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接