Extjs优化(二)Form表单提交通用实现

复制代码 代码如下:

  /**

  * 提交表单

  */

  function $postForm(a) {

  if (a.formPanel.getForm().isValid()) {

  var b = a.scope ? a.scope: this;

  a.formPanel.getForm().submit({

  scope: b,

  url: a.url,

  method: "post",

  params: a.params,

  waitMsg: "正在提交数据...",

  success: function(c, d) {

  Ext.ux.Toast.msg("操作信息", "成功信息保存!");

  if (a.callback) {

  a.callback.call(b, c, d);

  }

  },

  failure: function(c, d) {

  Ext.MessageBox.show({

  title: "操作信息",

  msg: "信息保存出错,请联系管理员!",

  buttons: Ext.MessageBox.OK,

  icon: "ext-mb-error"

  });

  if (a.callback) {

  a.callback.call(b);

  }

  }

  });

  }

  }

  使用改代码只需要13行代码 原始需要25-30行代码搞定 ,示例:

  

复制代码 代码如下:

  saveRecord: function() {

  $postForm({

  formPanel:this.formPanel,

  scope:this,

  url: __ctxPath + "/basedata/saveStudentDepartment.action",

  params:{},

  callback: function(d, f) {

  var e = Ext.getCmp("StudentDepartmentGrid");

  if (e != null) {

  e.getStore().reload();

  }

  b.close();

  }

  });