未捕获的TypeError:对象[object Object]在sencha touch 2.1中没有方法'submit'错误

时间:2013-03-21 09:56:22

标签: javascript sencha-touch

我在提交此表单时遇到问题。当我点击它显示的提交按钮  未捕获的TypeError:对象[object Object]没有方法'submit'错误。

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

    }   

});

1 个答案:

答案 0 :(得分: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'
    });
}
...