我有2个表单,在第一个表单中我有button1:
Buttons[{
width: 350,
text: 'Book',
name:'button1'}]
在第二个表单上我有button2,当按钮单击第二个表单时,第一个表单中的按钮被禁用,在我使用按钮的id(id:'button1')之前,并执行此操作:
Ext.getCmp('button1').setDisabled(true);
但现在我删除ID并在组件中使用名称。但我不知道如何按名称禁用button1!
答案 0 :(得分:1)
按钮没有name
属性 - 您应该查阅documentation以查看您可以使用的配置变量。我改为为其分配itemId
,以便您可以使用up()
和down()
函数,以便从事件处理程序中轻松查找组件层次结构中的项目。
或者,如果您想直接找到它,可以使用以下内容查找该项目:
{
text : 'Button',
itemId : 'buttonSelector'
}
var button = Ext.ComponentQuery.query('#buttonSelector');
if(button.length) button[0].disable();
请注意,ComponentQuery
实用程序会返回一系列项目(即使您使itemId
唯一)。这是一个简单的fiddle / demonstration。
在回复您的评论时,可能会对buttons
配置实际执行的内容产生混淆 - 根据docs,它是以下内容的简写:
dockedItems: [{
xtype: 'toolbar',
dock: 'bottom',
ui: 'footer',
defaults: {minWidth: minButtonWidth},
items: [
{ xtype: 'component', flex: 1 },
{ xtype: 'button', text: 'Button 1' }
]
}]
...这会在层次结构中创建一个额外的"步骤" ,您必须在查询中考虑这些步骤。例如,如果您的表单中有{{1>} formId ,您可以尝试以下内容:
itemId
我updated your fiddle来证明这一点。