Ext中Form組件提交後臺的3種方式

1,利用表單的原生方式提交,以下:(須要本身調用form.isValid()函數來校驗表單參數格式)
      1.x中:
  form.el.dom.action="../excel.do";
  form.el.dom.target="_blank";
  form.el.dom.submit();

        瀏覽器在新窗口打開../excel.do,並傳遞表單參數,
 一樣這裏的../excel.do能夠用servlet,jsp等替換。瀏覽器

     2.x中
  form.getForm().getEl().dom.actiong="../excel.do";
  form.getForm().getEl().dom.target="_blank";
  form.getForm().getEl().dom.submit();
服務器

   2,利用Ext表單的默認提交  (不須要本身校驗,form.submit();函數中會本身校驗,可是須要寫失敗函數或者失敗事件,用來提示用戶校驗失敗)
     1.x  form.submit();
     2.x  form.getForm().submit();
     若是form控件定義了URL,那麼這兩個提交將會請求這個URL而且傳遞form的參數。其底層實現是Ajax請求。
     若是form控件沒有定義 URL,那麼這2個submit函數能夠傳遞參數,相似以下:
     Form.submit({url:'confManager/newConfTask.do',waitMsg:'保存數據',waitTitle:"請等候。。。",params{p1:p1,p2:p2},success:sFn,failure:fFn});
     請求會把form控件中的參數和這裏submit函數中的參數一同發送到後臺。
     因爲這種方式存在回調函數和觸發事件。
所以若是調用成功會執行sFn這個函數,失敗會執行fFn這個函數。    
研究form提交源代碼,發現若是定義了actioncomplete,actionfailed.那麼根據表單提交的實際狀況會觸發不一樣的事件。
     具體說明:
     若是調用到了後臺,而且返回成功結果。那麼若是定義了success:sFn則先執行sFn,若是定義了actioncomplete,則接着觸發actioncomplete對應的事件
     若是調用到了後臺,而且返回成功失敗。那麼若是定義了failure:fFn則先執行fFn,若是定義了actionfailed,則接着觸發actionfailed對應的事件dom

     至於返回結果何爲成功,何爲失敗,能夠本身對源碼擴展,增長成功失敗的判斷規則。
補充:jsp

定義表單提交失敗的觸發事件
Form.on('actionfailed',formReqFail);函數

 

function formReqFail(f,a){
 if(a.failureType == Ext.form.Action.CLIENT_INVALID)
   Ext.MessageBox.alert('錯誤', '本地校驗錯誤');
 else if (a.failureType == Ext.form.Action.SERVER_INVALID)
   Ext.MessageBox.alert('錯誤', '服務器校驗錯誤');
 else if (a.failureType == Ext.form.Action.CONNECT_FAILURE)
   Ext.MessageBox.alert('錯誤', '鏈接錯誤或超時');
 else if (a.failureType == Ext.form.Action.LOAD_FAILURE)
   Ext.MessageBox.alert('錯誤', 'load 數據錯誤');
 }
url

   3,利用Ajax方式提交,(須要本身調用form.isValid()函數來校驗表單參數格式)
      直接利用:
      Ext.lib.Ajax.request({
      method :'POST',//提交方式
      url :'excel.jsp',//提交的URL,能夠是servlet,*.do,*.action等
      params:{p1:p1,p2:p2},//提交的參數,後臺能夠經過request.getParameter("p1");得到參數
      success :sFn,//當請求成功時調用的方法
      failure :fFn,//請求失敗時調用的方法
      callback :cFn,//當收到HTTP響應時調用的方法。無論請求成功仍是失敗,回調方法都會被調用
      form :'excelForm'//form>表單 元素或者<form>的id ,能夠從其中獲取參數 
});
spa

      根據Ext的Api自行決定須要哪些配置項。excel

相關文章
相關標籤/搜索