我试图在应用程序启动时禁用某些选择字段。我的主要导航是一个选项卡面板,我在这里有一个设置表单:
{
xtype: 'formpanel',
title: 'Einstellungen',
iconCls: 'settings',
cls: [
'settingsPanel'
],
id: 'settingsPanel',
ui: 'light',
layout: {
type: 'vbox'
},
scrollable: false,
items: [
{
xtype: 'selectfield',
border: '',
cls: [
'name1'
],
id: 'name1',
labelAlign: 'top',
autoCapitalize: false,
autoComplete: false,
placeHolder: '1. Name eingeben',
displayField: 'name',
store: 'settingsStore',
valueField: 'name'
}
现在在控制器初始化函数中,我尝试这样做:
var form = Ext.ComponentQuery.query('formpanel');
form.getAt(0).disable();
form.getAt(1).disable();
form.getAt(2).disable();
但我得到:
Uncaught TypeError: Object [object Object] has no method 'getAt'
如何在控制器中获取表单并禁用选择字段?这可能是范围问题吗?
谢谢!
我已经解决了您的问题并解决了它。以下是两个代码:-
主导航.js
{
xtype: 'fieldset',
id: 'abc', // give a unique 'id' to your fieldset
items: [
{
xtype: 'selectfield',
border: '',
cls: [
'name1'
],
id: 'name1',
labelAlign: 'top',
autoCapitalize: false,
autoComplete: false,
placeHolder: '1. Name eingeben',
displayField: 'name',
store: 'settingsStore',
valueField: 'name'
}
]
}
控制器.js
launch: function () {
console.log("launch");
var form = Ext.getCmp('abc'); // calling fieldset with 'id'
console.log('Fetching fieldset...');
form.getAt(0).disable();
}
希望这有帮助。