开发者

Submitting form in Sencha Touch

I have created a form and am trying to send its contents to a server. I used the forms example from sensa.com as a template. The form sends a message to my server, but only with my the disable caching value and not any of the form values, for example [url]/register?_dc=1829384859324 . I also modified the example to use my server url and my server received the same type of request with only _dc=... from the example.

Is there some explicit way I have to list the fields I want sent to the server?

My form code is listed below. When I call submit, I use form.submit({method: 'get'});

var formBase = {
        scroll: 'vertical',
        url   : 'MYURL/register',
        standardSubmit : false,
        items: [{
            xtype: 'fieldset',
            title: 'Personal Info',
            instructions: 'Please enter the information above.',
            defaults: {required: true,labelAlign: 'left',labelWidth: '40%'},
            items: [
            { xtype: 'textfield',name : 'first',label: 'First Name',useClearIcon: true,autoCapitalize : false
            }, { xtype: 'textfield',name : 'last',label: 'Last Name',useClearIcon: true,autoCapitalize : false
            }, { xtype: 'passwordfield',name : 'password',label: 'Password',useClearIcon: false
            }, {xtype: 'textfield',name :开发者_运维百科 'phone',label: 'Phone Number',
            }, {xtype: 'emailfield', name : 'email',label: 'Email',placeHolder: 'you@email.com',useClearIcon: true
            }]
        }],
    listeners : {
        submit : function(form, result){
                console.log('success',Ext.toArray(arguments));
        },
        exception : function(form, result){
                console.log('failure', Ext.toArray(arguments));
        }
}


I've just started using Sencha Touch myself, but I'm posting my form a bit different. I've created a submit button, and given that button a handler. The code that gets executed is the following:

    this.loginView.submit({
        method: 'POST',
        waitTitle: 'Connecting',
        waitMsg: 'Sending data...',
        success: function(form, result) {
            Ext.Msg.alert('Login succeeded!', result.response.reason);
        },
        failure: function(form, result){
            Ext.Msg.alert('Login Failed!', result.response.reason);
        }
    });

In which this.loginView refers to an Ext.form.FormPanel object (I'm separating controller-code and view-code, which I highly recommend!). Another method you could try is create your own AJAX request (using Ext.Ajax.request) and retrieve your form params using the getValues(); method from the FormPanel object.

I hope it helps!


You have to set the form property standardSubmit to true.


This post is quite old, but there might be others having similar issues with form submitting.

If you are new to Sencha and you have a form which is submitting nothing, you probably followed this tutorial Building your first app

It has a problem. Form items MUST HAVE NAME which is missing in the example.

Items should look something like the following:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜