2

我将如何选择FormPanel组件类型的所有子组件TextField

我只想遍历TextField组件并将它们的值设置为"".

我在一个方法里面有这个FormPanel

this.query('textfield').forEach(function(item) { console.log(item.id); } );

它选择了太多的东西,它选择了所有嵌套TextFields在里面的东西ComboBoxDateField还有什么不是。

我怎样才能只获得Ext.form.field.TextField实例?

4

2 回答 2

2

您需要调用函数 getXType()。

Extjs 文档http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.Component-method-getXType

例子

var t = new Ext.form.field.Text();

alert(t.getXType());  // alerts 'textfield'
于 2013-07-06T03:11:43.843 回答
1

Ext.ComponentQuery如果当前组件是 atextfield或从 扩展,使用这种形式的查询会导致查找textfield。只需对这种情况使用属性查询,例如[xtype=textfield]. 如果您在textfield没有设置的情况下xtype创建它或通过它xtype在实例上设置它来创建它并不重要。

这里的示例将返回两个结果。

var form = Ext.create('Ext.form.Panel', {
    title: 'Contact Info',
    width: 300,
    bodyPadding: 10,
    renderTo: Ext.getBody(),
    items: [Ext.create('Ext.form.field.Text',{
        name: 'name',
        fieldLabel: 'Name',
        allowBlank: false  // requires a non-empty value
    }), {
        xtype: 'textfield',
        name: 'email',
        fieldLabel: 'Email Address',
        vtype: 'email'  // requires value to be a valid email address format
    }]
});
console.log(Ext.ComponentQuery.query('[xtype=textfield]', form));
于 2013-07-06T10:57:55.747 回答