如何使用 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 获取表单面板和禁用选择字段的主要内容,如果未能解决你的问题,请参考以下文章

在 Sencha Touch 2 中提交表单

Sencha Touch 同步并从服务器获取新数据

使用 CSS 设置 Sencha Touch 表单的样式 - 我如何找到元素?

使用 sencha touch 2 表单在 textfiend 中启用掩码?

Sencha Touch 2 如何获取响应标头

如何在 Sencha-Touch2.0 的地图中获取当前位置的标记