2012-10-06 40 views
0

Iam嘗試在應用程序啓動時禁用某些選擇區域。 我的主導航是一個tabpanel,我有一個設置形式在這裏:如何使用Sencha Touch獲取表單並禁用選擇區域

{ 
        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(); 
      } 

希望這有助於。

+0

感謝您的幫助!它的工作現在! – Nico

相關問題