未捕获的类型错误:对象 [对象对象] 在 sencha touch 2.1 中没有方法"提交"错误



我在提交这个表单时有一个问题。当我点击提交按钮时,它就会显示出来未捕获的TypeError: Object [Object Object]没有方法'submit'错误。

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

thanks in advance

编辑:

我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'
                //});
    }   
});

您的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'
    });
}
...

最新更新