如何使用 Sencha Touch 2 获取表单面板和禁用选择字段
Posted
技术标签:
【中文标题】如何使用 Sencha Touch 2 获取表单面板和禁用选择字段【英文标题】:howto get formpanel and disable selectfields with Sencha Touch 2 【发布时间】:2012-10-06 13:31:59 【问题描述】:我正在尝试在应用启动时禁用某些选择字段。 我的主要导航是一个选项卡面板,我在这里有一个设置表单:
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'
如何在控制器中获取表单并禁用选择字段? 这可能是范围问题吗?
谢谢!
【问题讨论】:
【参考方案1】:我已经解决了您的问题并解决了它。下面是两个代码:-
主要的 Nav.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'
]
controller.js
launch: function ()
console.log("launch");
var form = Ext.getCmp('abc'); // calling fieldset with 'id'
console.log('Fetching fieldset...');
form.getAt(0).disable();
希望这会有所帮助。
【讨论】:
以上是关于如何使用 Sencha Touch 2 获取表单面板和禁用选择字段的主要内容,如果未能解决你的问题,请参考以下文章
使用 CSS 设置 Sencha Touch 表单的样式 - 我如何找到元素?