Sencha Touch 2表格不提交

时间:2012-09-06 06:36:05

标签: sencha-touch-2

出于某种原因,我的表单继续进行GET而不是将数据发布到我配置的URL。

我的表单如下:

Ext.define('App.view.LoginFormPanel', {
extend : 'Ext.form.Panel',
xtype : 'loginForm',
id : 'loginForm',

config : {
    title : 'Login',
    iconCls : 'user',
    ui : 'light',
    items : [
            {
                xtype : 'fieldset',
                title : 'Login',
                items : [
                        {
                            xtype : 'textfield',
                            label : 'Login',
                            name : 'j_username',
                            required : true,
                            readOnly : false
                        }, {
                            xtype : 'passwordfield',
                            label : 'Password',
                            name : 'j_password',
                            required : true,
                            readOnly : false
                        }
                ]
            }, {
                xtype : 'button',
                ui : 'confirm',
                text : 'Login',
                action : 'login'
            }
    ]
}

});

我提交表单的控制器如下所示:

......
    login : function() {
    loginForm.submit({
        url : 'j_spring_security_check',
        method : 'POST'
    });
},
......

我试图将url和方法放在表单上也没有运气:(。

有人知道我做错了吗?

2 个答案:

答案 0 :(得分:0)

尝试将standardSubmit设置为true。默认情况下,触摸表单是通过ajax GET方法提交的,但standardSubmit将发送POST。请注意,参数将在http有效载荷中编码,而不是在url params中编码。

干杯,奥列格

答案 1 :(得分:0)

我的答案是针对那些使用POST方法提交表单有问题的人。

如果您是Sencha的新手,并且您的表单中没有提交任何内容,那么您可能会遵循本教程Building your first app

有问题。表单项必须具有示例中缺少的名称。

项目应如下所示:

items: [
{
    xtype: 'textfield',                             
    name: 'name',
    label: 'Name'
},
{
    xtype: 'emailfield',
    name: 'email',
    label: 'Email'
},
{
    xtype: 'textareafield',
    name: 'message',
    label: 'Message'
}
]