2013-02-06 26 views
0

我是新來煎茶觸摸,我在這下面的代碼得到一個錯誤設置爲localstore是選項卡切換功能 errorUncaught TypeError: Object [object Object] has no method 'getValues'添加文本字段值從場中煎茶觸摸2

      var uswrfeild = Ext.getCmp('User_details'); 
           //var fieldset = Ext.create('FieldSet_PersonalSettings'); 
           //var fieldset= this.tab; 
           var values = uswrfeild.getValues(); 
           cart = Ext.create('Items'); 
           //alert(values); 
           //cart.add({field1:'value1',field2:'value2'}); 
           cart.add(values); 
           cart.sync(); 

下面的代碼是費爾德組代碼

    { 
         xtype: 'container', 
         title: 'User', 
         id: 'User_details', 
         itemId: 'mycontainer3', 
         scrollable: 'vertical', 
         items: [ 
          { 
           xtype: 'fieldset', 
           id: 'FieldSet_PersonalSettings', 
           itemId: 'myfieldset12', 
           margin: '2%', 
           title: 'User', 
           items: [ 
            { 
             xtype: 'textfield', 
             label: 'Name', 
             name: 'name', 
             maxLength: 31, 
             placeHolder: 'given-name family-name' 
            }, 
            { 
             xtype: 'emailfield', 
             label: 'Email', 
             name: 'email', 
             required: true, 
             maxLength: 63, 
             placeHolder: '[email protected]' 
            }, 
            { 
             xtype: 'textfield', 
             label: 'Street', 
             name: 'street', 
             required: true, 
             placeHolder: 'streetname' 
            }, 
            { 
             xtype: 'textfield', 
             label: 'House Number', 
             required: true, 
             placeHolder: '123' 
            }, 
            { 
             xtype: 'textfield', 
             label: 'Zipcode', 
             required: true, 
             autoCapitalize: true, 
             maxLength: 10, 
             placeHolder: '1234AA' 
            }, 
            { 
             xtype: 'textfield', 
             label: 'Country', 
             required: true, 
             placeHolder: 'NL' 
            } 
           ] 
          }, 
          { 
           xtype: 'fieldset', 
           margin: '2%', 
           title: 'Sharing information', 
           items: [ 
            { 
             xtype: 'checkboxfield', 
             label: 'Receive email', 
             labelWidth: '75%', 
             checked: true 
            }, 
            { 
             xtype: 'checkboxfield', 
             height: 49, 
             label: 'Upload statistics (anonymously)', 
             labelWidth: '75%', 
             checked: true 
            } 
           ] 
          } 

貝洛代碼是模型

Ext.define('iFP.model.item', { 
    extend: 'Ext.data.Model', 

    config: { 
     fields: [ 
      { 
       name: 'name', 
       type: 'string' 
      }, 
      { 
       name: 'email', 
       type: 'string' 
      }, 
      { 
       name: 'street', 
       type: 'string' 
      }, 
      { 
       name: 'hno', 
       type: 'auto' 
      }, 
      { 
       name: 'zipcode', 
       type: 'int' 
      }, 
      { 
       name: 'country', 
       type: 'string' 
      } 
     ] 
    } 
}); 

下面的代碼是商店

 Ext.define('iFP.store.userlocalsettings', { 
    extend: 'Ext.data.Store', 

    requires: [ 
     'iFP.model.item' 
    ], 

    config: { 
     autoSync: false, 
     model: 'iFP.model.item', 
     storeId: 'usersettingslocalstore', 
     proxy: { 
      type: 'localstorage' 
     } 
    } 
}); 

我的目標是文本feid值存儲在瀏覽器localstore。 請幫助我的任何哥們。 在此先感謝。

+0

哪個錯誤?你可以發佈控制檯嗎?您正在使用哪個ST版本? – SachinGutte

回答

0

你應該先設置ID爲每個字段,這樣例如

{ 
     xtype: 'textfield', 
     label: 'Name', 
     name: 'name', 
     maxLength: 31, 
     placeHolder: 'given-name family-name', 
     itemId: 'tfName' 
}, 

那麼您可以在功能

var namefield = this.down('#tfName'); 
var namevalue = namefield.getValue(); 

一些事件之後獲得字段的值...

然後你可以添加該值來存儲

var store = Ext.getStore('userlocalsettings'); 
store.add({name: namevalue}); 
store.sync(); 

希望這會有所幫助。

0

您應該爲您的表單設置ID。

config: { 
     itemId: 'form1' 
} 

然後在您的控制器添加參照該ID

refs: { 
     myPanel: '#form1' 
} 

我看不到你的按鈕偵聽。假設聽衆的名字是「onTapSave」,那麼你應該試試這個,

onTapSave: function(component,button, options){ 

    var uswrfeild = this.getMyPanel(); 
    var values = uswrfeild.getValues(); 
}