表单提交不回调

时间:2013-04-16 13:56:28

标签: extjs extjs4 extjs4.2

我有一个标准提交表单。

var formDettaglio = new Ext.form.FormPanel({

    title: 'Dettaglio richiesta',
    renderTo: 'divDettaglio',
    url: '/supporto/gestioneDettaglio',
    standardSubmit: true,
    width: '100%',
    forceFit: true,
    layout: {
        type: 'vbox',
        align: 'stretch'
    },
    defaults: {
        border: false
    },
    margin: '0 0 15 0',
    items: [{
            layout: {
                type: 'hbox',
                align: 'stretch'
            },
            margin: '0 10 5 10',
            items: [{
                    xtype: 'combo',
                    fieldLabel: 'Prodotto/Servizio',
                    labelWidth: 100,
                    width: 450,
                    queryMode: 'local',
                    name: 'cbAssets',
                    store: storeAssets,
                    displayField: 'valore',
                    valueField: 'codice'
                }, {
                    flex: 1,
                    xtype: 'label',
                    text: ' '
                }, {
                    xtype: 'textfield',
                    fieldLabel: 'Data chiusura prev.',
                    labelAlign: 'right',
                    labelWidth: 120,
                    width: 250,
                    name: 'textDataPrevista',
                    readOnly: true
                }, {
                    xtype: 'textfield',
                    fieldLabel: 'Stato',
                    labelAlign: 'right',
                    labelWidth: 50,
                    width: 150,
                    name: 'textStato'
                }
            ]
        }, {
            xtype: 'textarea',
            fieldLabel: 'Motivo richiesta',
            labelWidth: 100,
            height: 150,
            margin: '0 10 5 10',
            name: 'textMotivo'
        }
    ],
    dockedItems: [{
            xtype: 'toolbar',
            padding: '2 0 2 0',
            dock: 'bottom',
            ui: 'footer',
            items: [{
                    xtype: 'tbfill'
                }, {
                    xtype: 'button',
                    text: 'Salva',
                    style: "width:100px; height:25px;",
                    handler: function () {
                        if (formDettaglio.getForm().isValid()) {
                            formDettaglio.getForm().submit({
                                params: {
                                    azione: 'SALVA'
                                },
                                success: function (form, action) {
                                    alert('ok');
                                },
                                failure: function (form, action) {
                                    alert('ko');
                                }
                            });
                        } else {
                            alert('Errore!');
                        }
                    }]
            }]
    });

我的被叫函数/supporto/gestioneDettaglio发送一个json响应 {"success":true}

但是我的成功功能还没有开始。我也尝试过使用firebug上的断点:没办法。 我找回了一个空白页面,其中包含短语...... {"success":true}

我做错了什么?我在我的应用程序中发送JSON就像任何其他响应一样。

2 个答案:

答案 0 :(得分:0)

您将standardSubmit设置为true。如果要使用回调功能进行ajax提交,则需要将standardSubmit属性设置为false。

答案 1 :(得分:0)

解决了“standardSubmit:false” 提交点击后,我致电

Ext.Ajax.request({ url: '/supporto/gestioneDettaglio', 
    params: {azione: 'SALVA'},
    jsonData: { }, 
    form: 'formDettaglio', 
    method:'POST', 
    success: function(response, opts) { alert("successfull"); }, 
    failure:function(res,opt) { alert("request failed"); }
});

我不明白为什么没有“jsonData:{},”的Ajax请求没有传递参数......但是没关系。 谢谢!