Reference to button by name

user3045654

i am have 2 forms, and in first form i am have button1:

   Buttons[{
    width: 350,
    text: 'Book',
    name:'button1'}]

on second form i am have button2, and when button click in second form, then button in first form disabled, before i am use id of button (id:'button1') and make this:

Ext.getCmp('button1').setDisabled(true);

but now i am remove ID and use name in components. But i am didn"t know how disable button1 by name!

Emissary

Buttons don't have a name property - you should consult the documentation to see what configuration variables you have available to you. I'd instead assign it an itemId so you can make use of the up() and down() functions in order to easily find an item in the component hierarchy from an event handler.

Or if you want to find it directly you can use the following to lookup up the item:

{
    text   : 'Button',
    itemId : 'buttonSelector'
}
var button = Ext.ComponentQuery.query('#buttonSelector');
if(button.length) button[0].disable();

Keep in mind that the ComponentQuery utility returns an array of items (even if you make your itemId unique). Here's a simple fiddle / demonstration.


In response to your comment, there may be confusion in regards to what the buttons config actually does - according to the docs it is shorthand for the following:

dockedItems: [{
    xtype: 'toolbar',
    dock: 'bottom',
    ui: 'footer',
    defaults: {minWidth: minButtonWidth},
    items: [
        { xtype: 'component', flex: 1 },
        { xtype: 'button', text: 'Button 1' }
    ]
}]

... this creates an extra "step" in the hierarchy which you must account for in a query. For example, if your form had an itemId of formId you could try something like:

Ext.ComponentQuery.query('#formId toolbar #myButtonId')[0].disable();

I've updated your fiddle to demonstrate this.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related