(function ($) {
window.XW = {}; //全局系统对象 //异步请求统一调用方法 XW.ajax = function (options, param, callback) { var p = { type: "get", url: null, dataType: "json", //数据类型 cache: false, //或者设置true async: false, //是否异步 timeout: 5000, //延迟时间,0 表示一直等待 error: null, //失败的方法 beforeSend: null, //加载前的方法 complete: null //完成的方法 };p = $.extend(p, options);
p.url = p.url ? (p.url.indexOf("://") < 0 ? pathUrl + p.url : p.url) : null;$.ajax({
type: p.type, url: p.url, cache: p.cache, dataType: p.dataType, data: param, timeout: p.timeout, success: callback, async: p.async, error: function (xmlHttpRequest, textStatus, errorThrown) { alert("错误:资源请求错误!\r\n代码:" + textStatus + "\r\n消息:" + errorThrown); } }); }; //提交表单(替换 EasyUI 表单提交方法) $.fn.formSubmit = function(options) { var p = { url: null, // 提交地址 type: "post", // 提交方式,如果存在跨域请求,需要使用 get dataType: "json", // 数据类型 param: null, onSubmit: null, onSuccess: null };p = $.extend(p, options);
var form = $(this);
//提交表单 function submitForm(datas) { XW.ajax({ url: p.url, type: p.type, dataType: p.dataType }, datas, function (data) { if ($.isFunction(p.onSuccess)) { p.onSuccess(data); } }); } //表单提交验证 function formChecker(tar) { return tar.form("enableValidation").form("validate"); } //表单中的字段 var fields = form.find("input[class^='easyui-'], select[class^='easyui-']");var formData = {};
$.each(fields, function (i, o) { var id = $(o).attr("id"); var type = $(o).attr("class").split(" ")[0]; var isSingle; switch (type) { case "easyui-textbox": formData[id] = $(o)[type.split("-")[1]]("getText"); break; case "easyui-datebox": case "easyui-numberbox": formData[id] = $(o)[type.split("-")[1]]("getValue"); break; default: isSingle = $(o).attr("data-options").replace(/ /g, "").indexOf("multiple:true") < 0; formData[id] = $(o)[type.split("-")[1]](isSingle ? "getValue" : "getValues"); break; } }); //添加额外参数 if (p.param != null) { for (var n in p.param) { formData[n] = p.param[n]; } }if ($.isFunction(p.onSubmit)) {
var checkForm = formChecker(form); if (checkForm) { submitForm(formData); } } else { submitForm(formData); } };})(jQuery);