nirupam
nirupam

Reputation: 401

How to get data from fieldset in Sencha Touch 2?

I hava a fieldset in Sencha Touch 2 as follows:

{
                    id:'contactForm',
                    xtype: 'fieldset',
                    title: 'Information',
                    items: [
                        {
                            xtype: 'textfield',
                            label: 'First Name',
                            placeHolder: 'Your First Name',
                            name:'firstName',
                            id:'firstName',
                        },
                        {
                            xtype: 'textfield',
                            label: 'Last Name',
                            placeHolder: 'Your Last Name',
                            name:'lastName'
                        },
                        {
                            xtype: 'emailfield',
                            label: 'Email',
                            placeHolder: '[email protected]'
                        },
                        {
                            xtype: 'button',
                            height: 37,
                            style: 'margin-left:35%',
                            width: 100,
                            iconAlign: 'center',
                            text: 'Submit',
                            action:'ContactSubmit'                        
                        },
                        {
                            xtype: 'hiddenfield',
                            id: 'HNumberOfBedRoom',
                            value:'2'
                        },
                        {
                            xtype: 'hiddenfield',
                            id: 'HPetFriendlyId',
                            value:'2'
                        }                
                ]
}

In my controller, I have the following:

refs: { contactForm: '#contactForm' }

I can retrive the value by using

var frmItems=this.getContactForm().getItems();
console.log(frmItems.items[1]._value);

This works fine but i want to retrieve the values something like

frm.get('name/id of component')

is there any way to achieve this?

Upvotes: 3

Views: 9570

Answers (5)

Aanchal Gupta
Aanchal Gupta

Reputation: 1

Assign itemId: firstName to textfield

And in Controller, where you want to get the value, use this:

Ext.ComponentQuery.query('textfield[itemId=firstName]')[0].getData();

Upvotes: 0

no7dw
no7dw

Reputation: 431

refs:[
        {
            ref:'contentForm',
            // selector:'#contentForm'
            contentForm:'#contentForm'
        }
    ],

-

var form = Ext.getCmp('contentForm');

console.log(form.getValues());

Upvotes: 0

Gayathri Mohan
Gayathri Mohan

Reputation: 2962

Dont struggle too much

first assign the id to that field and get the value using id thats it..

     {
          xtype: 'textfield',
          id: 'username',      // id
          name: 'username',
          placeHolder: '------UserName------',                 
        },


         Ext.getCmp('username').getValue();     // now get value using that id..

Upvotes: 0

Skeebo06
Skeebo06

Reputation: 114

Use a Ext.form.Panel as your primary container.

example snippet

Ext.define('App.view.ContactForm',
{
  extend : 'Ext.form.Panel',
  xtype : 'contactform',
  id : 'contactForm',
  config : {
    items : [
      { 
        xtype : 'fieldset',
        items : [
           {
             {
                xtype: 'textfield',
                label: 'First Name',
                placeHolder: 'Your First Name',
                name:'firstName',
             },
         ]
       }
});

in your controller

refs : { contactForm : '#contactForm' }

then in your function you can either do

this.getContactForm().getValues().firstName

(uses the name value of the field)

or

var vals = this.getContactForm().getValues();
vals.firstName;

Avoid using Ext.getCmp() or a flat Ext.get() at the top level if you absolutely can help it. If you're building custom controls you might have to make use of those, otherwise you're making things too hard on yourself.

Upvotes: 8

Alex
Alex

Reputation: 5724

You should be able to assign an id to your field, and then Ext.getCmp('-yourId-'); or Ext.get('-yourId-');

( http://docs.sencha.com/touch/2-0/#!/api/Ext.Component-cfg-id )

Upvotes: 4

Related Questions