extJs常用的四種Ajax非同步提交

來源:互聯網
上載者:User
/**
 * 第一種Ajax提交方式
 * 這種方式需要直接使用ext Ajax方法進行提交
 * 使用這種方式,需要將待傳遞的參數進行封裝
 * @return
 */
function saveUser_ajaxSubmit1() {
 Ext.Ajax.request( {
  url : 'user_save.action',
  method : 'post',
  params : {
   userName : document.getElementById('userName').value,
   password : document.getElementById('password').value
  },
  success : function(response, options) {
   var o = Ext.util.JSON.decode(response.responseText);
   alert(o.msg);
  },
  failure : function() {
  }
 });
}
/**
 * 第二種Ajax提交方式
 * 這種方式將為ext的ajax指定一個html表單
 * 使用這種方式,不需要將待傳遞的參數進行封裝
 *
 * @return
 */
function saveUser_ajaxSubmit2() {
 Ext.Ajax.request( {
  url : 'user_save.action',
  method : 'post',
  form : 'userForm', // 指定表單
  success : function(response, options) {
   var o = Ext.util.JSON.decode(response.responseText);
   alert(o.msg);
  },
  failure : function() {
  }
 });
}
/**
 * 第三種Ajax提交方式
 * 這種方式將為ext的自己的表單進行提交
 * 使用這種方式,需要使用ext自己的textField組件
 *
 * @return
 */
function saveUser_ajaxSubmit3() {
 // 定義表單
 var formPanel = new Ext.FormPanel( {
  labelWidth : 75,
  frame : true,
  bodyStyle : 'padding:5px 5px 0',
  width : 350,
  defaults : {
   width : 230
  },
  defaultType : 'textfield',
  items : [ {
   fieldLabel : '使用者名稱',
   name : 'userName',
   allowBlank : false
  }, {
   fieldLabel : '密   碼',
   name : 'password'
  } ]
 });
 // 定義視窗
 var win = new Ext.Window( {
  title : '添加使用者',
  layout : 'fit',
  width : 500,
  height : 300,
  closeAction : 'close',
  closable : false,
  plain : true,
  items : formPanel,
  buttons : [ {
   text : '確定',
   handler : function() {
    var form = formPanel.getForm();
    var userName = form.findField('userName').getValue().trim();
    var password = form.findField('password').getValue().trim();
    if (!userName) {
     alert('使用者名稱不可為空');
     return;
    }
    if (!password) {
     alert('密碼不可為空');
     return;
    }
    form.submit( {
     waitTitle : '請稍後...',
     waitMsg : '正在儲存使用者資訊,請稍後...',
     url : 'user_save.action',
     method : 'post',
     success : function(form, action) {
      alert(action.result.msg);
     },
     failure : function(form, action) {
      alert(action.result.msg);
     }
    });
   }
  }, {
   text : '取消',
   handler : function() {
    win.close();
   }
  } ]
 });
 win.show();
}
/**
 * 第四種Ajax提交方式
 * 這種方式將html的表單轉化為ext的表單進行非同步提交
 * 使用這種方式,需要定義好html的表單
 *
 * @return
 */
function saveUser_ajaxSubmit4() {
 new Ext.form.BasicForm('userForm').submit( {
  waitTitle : '請稍後...',
  waitMsg : '正在儲存使用者資訊,請稍後...',
  url : 'user_save.action',
  method : 'post',
  success : function(form, action) {
   alert(action.result.msg);
  },
  failure : function(form, action) {
   alert(action.result.msg);
  }
 });
}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.