2012-04-25 5 views
2

У меня есть всплывающее окно с текстовым полем формы. Как получить доступ к текстовому полю? Вот моя попытка:Sencha Touch 2 form

function foo(){ 
    bar = Ext.Viewport.add({ 
    xtype: 'panel', 
    scrollable: true, 
    centered: true, 
    width: 400, 
    height: 300, 
    items:[{ 
      xtype: 'textfield', 
      name: 'name', 
      label: 'Name' 
     }, { 
      docked: 'bottom', 
      xtype: 'titlebar', 
      items:[{ 
        xtype: 'button', 
        ui: 'normal', 
        text: 'Send', 
        go: 'testsecond', 
        handler:function(){ 
         alert(bar.getValues().name); 
        } 
      }] 
     }] 
    }); 
} 

ответ

1

Nope. Вам не нужно так поступать. Установка xtype:'panel' не позволит вам получить доступ к значениям формы с использованием метода form.getValues().

Вместо этого сделайте следующее.

Дайте вашей панели xtype как formpanel.

Смотрите это ниже:

bar = Ext.Viewport.add({ 
    xtype: 'formpanel', 
    scrollable: true, 
    centered: true, 
    width: 400, 
    height: 300, 
    items:[{ 
      xtype: 'textfield', 
      name: 'name', 
      label: 'Name' 
     }, { 
      docked: 'bottom', 
      xtype: 'titlebar', 
      items:[{ 
        xtype: 'button', 
        ui: 'normal', 
        text: 'Send', 
        go: 'testsecond', 
        handler:function(){ 
         Ext.Msg.alert("Name: "+bar.getValues().name); 
        } 
      }] 
     }] 
    }); 

Ваш вывод должен быть:

enter image description here

+0

Вам не нужен 'getCmp' называют здесь. У вас уже есть ссылка на форму, используя переменную 'bar'. – rdougan

+0

@rdougan: Ой. Я пропустил эту ссылку. Да, тогда не нужно будет вызывать 'getCmp()'. Редактирование моего ответа. –

+0

Это сработало отличное путешествие Runner. Спасибо за объяснение. –