如何从Ext表单中获取值

时间:2013-02-01 09:03:39

标签: extjs extjs4

实际上我有一个ExtJs脚本来创建带有下面窗口的表单。

var frmAccount = Ext.create('Ext.form.Panel',{
    bodyPadding: 5,
    frame  : true,
    items    :[
    {
        xtype       : 'textfield',
        fieldLabel  : 'Account Number',
        name        : 'accountNum'
    },{
        xtype       : 'textfield',
        fieldLabel  : 'Company',
        name        : 'company'
    },{
        xtype       : 'textfield',
        fieldLabel  : 'Office',
        name        : 'office'
    },{
        xtype       : 'textareafield',
        fieldLabel  : 'Address',
        name        : 'address',
        width       : 350
    },{
        xtype       : 'textfield',
        fieldLabel  : 'City',
        name        : 'city'
    },{
        xtype       : 'textfield',
        fieldLabel  : 'Country',
        name        : 'nation'
    }]
});

var winAddAccount = Ext.create('widget.window',{
    id     : 'addAccount',
    title  : 'Filter Record',
    width  : 400,
    height : 300,
    modal  : true,
    closeAction    : 'hide',
    items  : frmAccount,
    layout : 'fit',
    bodyPadding: 5,
    buttons:[
    {
        text    : 'Find',
        handler: function(){
            //console.log(form value);
        }
    },
    {
        text    : 'Cancel',
        handler: function(){
            winAddAccount.hide();
        }
    }
    ]
});

我只想在点击“查找”按钮后从表单中获取值。 但是,在点击“查找”按钮后,我不知道从表单中获取值。 希望我能在处理程序上看到console.log脚本的值。 请帮助我解决或提出一个想法。 感谢。

2 个答案:

答案 0 :(得分:27)

试试这个

text    : 'Find',
handler: function(btn){
    var win = btn.up('window'),
        form = win.down('form');
    console.log(form.getForm().getValues());
}

此外,我建议您浏览一下sencha提供的 tutorials ,并查看 API ,其中包含大量的例子

要仅获取特定字段的值(此示例假定该字段存在!)

text    : 'Find',
handler: function(btn){
    var win = btn.up('window'),
        form = win.down('form');
    console.log(form.getForm().findField('NamePropertyValue').getSubmitValue() /*or call getSubmitData() or just getValue()*/);
}

答案 1 :(得分:0)

handler: function(button) {
  var form = button.up('form').getForm();
  console.log(form.getValues());
  // ...
}