ExtJS - How to get component item value

extjs, javascript

Solution

A few ways but common is to use `Ext.ComponentQuery`:

Give your field an `itemId` in its config e.g. `itemId: 'theField'`:

 var field= Ext.ComponentQuery.query('#theField')[0];
 field.setFieldLabel(valueFromCombo);

Add an on `change` listener to your combo, you can use up and down (which are also component queries)

listeners: {
  change: function(combo) {
    var form = combo.up('#form');
    var field = form.down('#theField');
    field.setFieldLabel(lookupValueFromCombo);
  }
}

Remember any config settings in ext js will get a setter and getter, thus `fieldLabel` has `getFieldLabel()` & `setFieldLabel(s)` methods.

edit above is only with ext js 4.1+ with ext js 4.0+ you can do:

field.labelEl.update('New Label');

Problem

I have a component as follow : ``` { xtype: 'fieldcontainer', layout: 'hbox', id: 'article-level-container', defaultType: 'textfield', fieldDefaults: { labelAlign: 'top' }, items: [{ fieldLabel: 'LEVEL', name: 'artLevel', inputWidth: 216, margins: '0 5 5 0', allowBlank: false, fieldStyle: 'text-align: right; font-size: 13pt; background-color: #EAFFCC;' }, { fieldLabel: 'VALUE', name: 'artValue', inputWidth: 216, allowBlank: false, blankText: 'zorunlu alan, boş bırakılamaz', fieldStyle: 'text-align: right; font-size: 13pt; background-color: #EAFFCC;', listeners: { change: function(textfield, newValue, oldValue) { if (oldValue == 'undefined' || newValue == '') { Ext.getCmp('btnArticleSave').disable(); } else { Ext.getCmp('btnArticleSave').enable(); } } } }] } ``` I want to get second item `fieldLabel` value ( in this case VALUE ). - How can I get this field value outside the `onReady` function? - How can I change this field label with new value ( I want to change fieldlabel with selected combobox value ) UPDATE I tried the following : ``` var artField = Ext.ComponentQuery.query('#articleValueField'); console.log(artField); ```

Original source