按名称引用按钮



我有两个表单,在第一个表单我有button1:

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

在第二种形式我有button2,当按钮点击在第二种形式,然后按钮在第一种形式禁用,之前我使用按钮的id (id:'button1'),并使此:

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

,但现在我在组件中删除ID和使用名称。但我不知道如何禁用button1的名字!

按钮没有name属性-您应该查阅文档以查看您可用的配置变量。相反,我将分配它一个itemId,这样您就可以利用up()down()函数,以便从事件处理程序中轻松找到组件层次结构中的项目。

或者,如果你想直接找到它,你可以使用以下命令查找项目:

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

请记住,ComponentQuery实用程序返回一个项目数组(即使您使itemId唯一)。这是一个简单的小提琴/演示。


在回应你的评论,可能有关于什么buttons配置实际做混淆-根据文档它是以下简写:

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

…这会在层次结构中创建一个额外的"步骤",您必须在查询中考虑到这个步骤。例如,如果您的表单有一个itemId formId您可以尝试这样做:

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

我已经更新了你的小提琴来演示这个

最新更新