3

次のように Sencha Touch 2 でフィールドセットを持っています。

{
                    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@example.com'
                        },
                        {
                            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'
                        }                
                ]
}

私のコントローラーには、次のものがあります。

refs: { contactForm: '#contactForm' }

を使用して値を取得できます

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

これは正常に機能しますが、次のような値を取得したい

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

これを達成する方法はありますか?

4

5 に答える 5

8

Ext.form.Panel をプライマリ コンテナとして使用します。

スニペットの例

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',
             },
         ]
       }
});

あなたのコントローラーで

refs : { contactForm : '#contactForm' }

次に、関数で次のいずれかを行うことができます

this.getContactForm().getValues().firstName

(フィールドの名前の値を使用)

また

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

Ext.getCmp() またはフラットな Ext.get() をトップレベルで使用することは絶対に避けてください。カスタム コントロールを構築している場合は、それらを利用する必要があるかもしれません。

于 2012-06-15T19:41:06.120 に答える
4

idフィールドにを割り当ててから、Ext.getCmp('-yourId-');またはExt.get('-yourId-');

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

于 2012-05-31T12:05:43.443 に答える
0

割り当てitemId: firstNametextfield

そしてController、値を取得したい場所で、これを使用します:

Ext.ComponentQuery.query('textfield[itemId=firstName]')[0].getData();
于 2014-11-09T11:35:07.080 に答える