2013-03-21 61 views
1

我在提交此表單時遇到問題。當我點擊提交按鈕時,它顯示 Uncaught TypeError:Object [object Object]沒有方法'submit'錯誤。未捕獲的類型錯誤:對象[對象對象]在sencha touch中沒有方法「提交」錯誤2.1

submitcontactform :function() 
    { 

     var form= this.getLoginform(); 
     form.submit({ 
      url:'contact.php' 
     }); 
    } 

在此先感謝

編輯:

我login.js

Ext.define('sencha.view.Login',{ 
      extend:'Ext.Panel', 
      xtype:'LoginPanel', 
      id:'loginform', 
      config:{ 
       title:'LoginForm', 
       items: [ 
         { 
          xtype: 'emailfield', 
          name : 'email', 
          label: 'Email' 

         }, 
         { 
          xtype: 'passwordfield', 
          name : 'password', 
          label: 'Password' 

         }, 
         { 
          xtype:'button', 
          text:'Submit', 
          ui:'confirm', 
          action:'submitForm' 

         } 
         ] 
      } 


}); 

我控制器

Ext.define('sencha.controller.main',{ 
    extend:'Ext.app.Controller', 

    views :['MainView','Login'], 
    config: 
    { 
     refs: 

     { 
    loginform:'#loginform' 
      //selector:'#buttonform' 
     } 

    }, 
    init: function(){ 

     this.control({ 
      'button[action=submitForm]':{ 
      tap:'submitcontactform' 
     } 

     }); 

    }, 
    submitcontactform :function(btn) 
    { 
     //console.log('im a function'); 
     //var form= this.getLoginform(); 
     var form=btn.up('formpanel'); 
     form.submit({ 
      url:'contact.php' 
     }); 
    } 
}); 

和我app.js

Ext.application({ 
    name:'sencha', 
    controllers : ['main'], 

    views :['MainView','Login',''], 
    //stores: ['presidentstore'], 
    //models: ['presidentmodel'], 
    launch:function(){ 
      Ext.create('sencha.view.MainView'); 
       //Ext.Viewport.add({ 
       // xclass:'sencha.view.presidentlist' 
       //}); 

    } 

}); 
+0

你是如何得到這個形式?你在控制器中正確引用它嗎?這可能會有所幫助:http://www.sencha.com/forum/showthread.php?185671-Uncaught-TypeError-Object-object-Object-has-no-method-getContactForm/page2 – cclerville 2013-03-21 13:52:13

+0

@cclerville謝謝。我看到了鏈接,但它並沒有幫助我解決問題。現在它的顯示如下Uncaught TypeError:無法調用未定義.any創意的方法'submit'... – ram 2013-03-22 06:00:11

+0

您能向我們展示您的控制器配置和登錄窗體類,以便我們確定您使用的是正確的選擇器? – ThinkFloyd 2013-03-22 06:34:17

回答

0

您的LoginPanel有問題。您的id應該在config之內。這就是說,我會建議使用itemId來代替。你應該LoginPanel這個樣子:

Ext.define('sencha.view.Login',{ 
     extend:'Ext.Panel', 
     xtype:'LoginPanel', 
     config:{ 
      title:'LoginForm', 
      itemId: 'loginform', 
      items: [ 
        { 
         xtype: 'emailfield', 
         name : 'email', 
         label: 'Email' 
        }, 
        { 
         xtype: 'passwordfield', 
         name : 'password', 
         label: 'Password' 
        }, 
        { 
         xtype:'button', 
         text:'Submit', 
         ui:'confirm', 
         action:'submitForm' 
        } 
       ] 
     } 
}); 

最後,你的控制器應是這個樣子:

... 
config:{ 
    refs:{ 
     loginform:{ 
      autoCreate: true, 
      selector:'#loginform', 
      xtype: 'LoginPanel' 
     } 
    }, 

    control : { 
     'button[action=submitForm]' : { 
      tap : "submitcontactform" 
     } 
    }, 
}, 

submitcontactform :function(btn) { 
    //console.log('im a function'); 
    var form= this.getLoginform(); 
    form.submit({ 
     url:'contact.php' 
    }); 
} 
... 
相關問題