2013-02-06 21 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(); 
}