2014-02-18 3 views
0

Хотя я проверял другие сообщения по одному и тому же вопросу, они не оказались очень полезными. Ниже приведен код, где я пытаюсь получить значение текстового поля, но я неоднократно получаю такую ​​же ошибку. Есть ли альтернативный метод.Ext.getCmp undefined

initComponent: function() { 
    this.items = [ 
     { 
      xtype: 'form', 
      padding: '5 5 0 5', 
      border: false, 
      style: 'background-color: #fff;', 

      fieldDefaults: { 
       anchor: '100%', 
       labelAlign: 'left', 
       allowBlank: false, 
       combineErrors: true, 
       msgTarget: 'side' 
      }, 

      items: [ 
       { 
        xtype: 'textfield', 
        name : 'id', 
        fieldLabel: 'id', 
        hidden:true 
       },  
       { 
        xtype: 'textfield', 
        name : 'name', 
        id : 'idname', 
        fieldLabel: 'Name', 
        allowBlank:false, 
        blankText:'Name is required' 
       }, 
       { 
        xtype: 'textfield', 
        name : 'accno', 
        maxLength: 16, 
        enforceMaxLength : true, 
        regex: /^.{16}$/, 
        regexText:'Only 16 Digits please', 
        //autoCreate: {tag: 'input', type: 'text', size: '20', autocomplete: 'off', maxlength: '10'}, 
        fieldLabel: 'AccNo' 
       }, 
       { 
        xtype: 'textfield', 
        name : 'trade', 
        fieldLabel: 'Trade' 
       }, 
       { 
        xtype: 'datefield', 
        name : 'doi', 
        fieldLabel: 'Date Of Insurance', 
        editable: false, 
        value : new Date() 
       }, 
       { 
        xtype: 'datefield', 
        name : 'dd', 
        fieldLabel: 'Due Date', 
        editable:false, 
        value : new Date() 
       } 
      ] 
     } 
    ]; 

    this.dockedItems = [{ 
     xtype: 'toolbar', 
     dock: 'bottom', 
     id:'buttons', 
     ui: 'footer', 
     items: ['->', { 
      iconCls: 'icon-save', 
      itemId: 'save', 
      text: 'Save', 
      handler: function (button) { 
       Ext.Msg.alert('You clicked the button'); 
       var txt = Ext.getCmp('idname').value(); 
       //var tf = button.up('window').down('#idname'); 

       Ext.Msg.alert(txt); 

      }, 
      action: 'save' 
     },{ 
      iconCls: 'icon-reset', 
      text: 'Cancel', 
      scope: this, 
      handler: this.close 
     }] 
    }]; 

    this.callParent(arguments); 
} 

});

+0

вы можете попробовать 'ПолучитьЗначение()' вместо 'значение()', значит ли это устранить проблему? – weeksdev

+0

@weeksdev Пробовал, но все еще получал такую ​​же ошибку «TypeError: Ext.getCmp (...) не определено» –

ответ

0

Я хотел бы попробовать Ext.ComponentQuery.query method

на кнопке, чтобы проверить

xtype: 'toolbar', 
    dock: 'bottom', 
    id:'buttons', 
    ui: 'footer', 
    items: ['->', { 
     iconCls: 'icon-save', 
     itemId: 'save', 
     text: 'Save', 
     scope:this, 
     handler: function (button) { 
      Ext.Msg.alert('You clicked the button'); 
      var txtfield = this.query('#idname'); 
      var txt = txfield.getValue(); 
      Ext.Msg.alert(txt); 

     }, 
     action: 'save' 
    } 
+0

Пробовал решение, но получаю эту ошибку ** TypeError: this.query не является функцией ** (My Ext Версия 4.0.0) –

+0

Думаю, я должен спросить, в каком классе вы участвуете в этом? –

+0

Ext.window.Window –

Смежные вопросы