2013-04-16 51 views
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}

但是我的成功功能无法启动。我也试着用萤火虫的断点:没办法。 我找回了一个空白页,正好有这句话... {"success":true}

我在做什么错?我在我的应用程序中发送类似于任何其他响应的JSON。

回答

0

您有standardSubmit设置为true。如果要使用回调函数执行ajax提交,则需要将standardSubmit属性设置为false。

+0

设置standardSubmit:false,我得到正确的服务器响应。但现在,我不明白为什么我的参数:{azione:'SALVA'},没有发送到服务器?!!?还与Ext.Ajax.request尝试({ \t \t \t网址: '/ supporto/gestioneDettaglio', \t \t \t PARAMS:{动作类: 'SALVA'}, \t \t \t形式: 'formDettaglio', \t \t \t方法: 'POST', \t \t \t成功:功能(响应,选择采用){ \t \t \t \t警报( “全成”); \t \t \t}, \t \t \t失败:功能(RES,OPT){ \t \t \t \t警报( “请求失败”); \t \t \t} \t \t}); 同样的问题:params不起作用。 任何建议???谢谢 – Bia1974

+0

添加到我的Ext.Ajax.request,如上所示,行 jsonData:{}, 现在params正确地发送到我的服务器。 任何人都可以解释这一点?我想了解这种情况...谢谢 – Bia1974

+0

好吧。您可以使用您的原始示例,将standardSubmit设置为false,然后在名称中包含隐藏字段,名称为:azione和value:'SALVA',它应该适合您 – Reimius

0

与解决 “standardSubmit:假” 在提交一下,我叫

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"); } 
}); 

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