2010-12-23 73 views
0

我有一個Ext.FormPanel具有Save按鈕,這是應該做的兩件事情在這個順序:(1)發佈數據,(2)回去頁面從那裏被調用。如何在Ext.FormPanel成功提交數據之前確保函數不被執行?

buttons: [{ 
     text: 'Save', 
     handler: function() { 
      if(panel_form.getForm().isValid()){ 
       panel_form.getForm().getEl().dom.action = 'backend/page/blocks/edit_positioned_post/17.html'; 
       panel_form.getForm().getEl().dom.method = 'POST'; 
       panel_form.getForm().submit(); //FIRST POST DATA 
       replace_region_with_uri_content('/backend/page'); //THEN GO BACK 
      } else { 
       Ext.Msg.minWidth = 360; 
       Ext.Msg.alert('Invalid Form', 'Some fields are invalid, please correct.'); 
      } 
     } 
    },{ 
     text: 'Cancel', 
     handler: function(){ 
      replace_region_with_uri_content('/backend/page'); 
     } 
    }] 

但是什麼實際情況是倒退,因爲我可以在Firebug看到的,即它(1)可以追溯到,和(2)職位數據,這導致了情況的它返回到的網格不顯示更新的數據

alt text

我如何可以強制執行panel_form.getForm().submit()只完成後replace_region_with_uri_content(),即通過發送第一個函數作爲第二個的回調?

回答

0

我發現它,你可以添加一個「成功函數」到提交()這樣的參數數組:

buttons: [{ 
      text: 'Save', 
      handler: function() { 
       if(panel_form.getForm().isValid()){ 
        panel_form.getForm().getEl().dom.action = 'backend/page/blocks/edit_positioned_post/17.html'; 
        panel_form.getForm().getEl().dom.method = 'POST'; 
        panel_form.getForm().submit({ 
         success : function(form, action) { 
          replace_region_with_uri_content('/backend/page'); 
         } 
        }) 
       } else { 
        Ext.Msg.minWidth = 360; 
        Ext.Msg.alert('Invalid Form', 'Some fields are invalid, please correct.'); 
       } 
      } 
     },{ 
      text: 'Cancel', 
      handler: function(){ 
       replace_region_with_uri_content('/backend/page'); 
      } 
     }] 
}); 
+0

星爺是可以做的,以及:) – Lloyd 2010-12-23 11:24:55

相關問題