(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);

EasyUI 另一种form提交方式的更多相关文章

  1. Flink Yarn的2种任务提交方式

    Flink Yarn的2种任务提交方式 Pre-Job模式介绍 每次使用flink run运行任务的时候,Yarn都会重新申请Flink集群资源(JobManager和TaskManager),任务执 ...

  2. 表单<form></form>提交方式的区别

    <form action="" method="get/post"> 表单<form></form>的提交方式有两种:pos ...

  3. form提交方式Get与Post详解

    form作为Html的一个元素,它就是为了客户端提交数据而产生的,它有两个很重要的属性action和method,action属性指明了处理提交的数据的应用程序的URL,而method有两个值:POS ...

  4. jquery的几种ajax提交方式

    $.post( url, function(data){ if(data.retcode == "0"){ alert(data.retmsg); }else{ alert(dat ...

  5. jQuery - 几种异步提交方式

    $.post(url,params,callback); $.post("${ctx}/role/grant", {userId : $("#userId"). ...

  6. jquery.validate+jquery.form提交的三种方式

    原文:http://www.cnblogs.com/datoubaba/archive/2012/06/06/2538873.html jquery.validate+jquery.form提交的三种 ...

  7. springMVC怎么改变form的提交方式为put或者delete

    想着练习一下创建restful风格的网站呢,结果发现在jsp页面上并不能灵活使用put和delete提交方式.下面我的解决办法 一. form 只支持post和get两种提交方式,只支持get提交方式 ...

  8. jquery.validate校验+jquery.form提交,配合使用

    原文链接:http://www.cnblogs.com/datoubaba/archive/2012/06/06/2538873.html 概述:本篇主要讨论jquery.validate结合jque ...

  9. ajax Form提交与Payload提交

    后端处理前端提交的数据时,既可以使用Form解析,也可以使用JSON解析Payload字符串. Form解析可以直接从Request对象中获取请求参数,这样对象转换与处理相对容易,但在大片JSON数据 ...

随机推荐

  1. Citrix服务器虚拟化之二十九 XenApp 6.5发布服务器上的应用程序

    Citrix服务器虚拟化之二十九  XenApp 6.5发布服务器上的应用程序 XenApp可发布以下类型的资源向用户提供信息访问,这些资源可在服务器或桌面上虚拟化: 1)  服务器桌面:发布场中服务 ...

  2. Android相机基础基于camera2API

    前言 最近,在使用Android做一个照相机的开发.因为不能使用系统提供的相机应用,所以只能自己写一个.Android以前提供相机的api叫camera,不过在level 21被Google抛弃了.网 ...

  3. TP框架中ajax post请求时提示404

    ajax post请求时提示404错误 TP框架中ajax post请求时提示404 找了半天是 控制器中方法有错误! 下次再遇到去控制器方法中找一步一步找,肯定能找到,我是单词拼错了!

  4. taro 打包微信小程序运行失败(二)

    1.报错信息 thirdScriptError sdk uncaught third Error Cannot read property 'dispatch' of null TypeError: ...

  5. 移动端项目中 @2x 图 和 @3x 图 的使用

    移动端开发过程中,因为手机的dpr(设备像素比不同),我们需要根据dpr来修改图标的大小: 1.通过mixin,动态修改图标的背景图片.通过@media (媒体查询),判断设备的dpr. @mixin ...

  6. android开发之数据库游标未关闭导致

    replacements=[Ljava.lang.String;@4192fea8HARDWARE=hw7d501lmatchers=[Ljava.lang.String;@4192fe28RADIO ...

  7. spring各种邮件发送

    参考地址一 参考地址二 参考地址三 参考地址四 Spring邮件抽象层的主要包为org.springframework.mail.它包括了发送电子邮件的主要接口MailSender,和值对象Simpl ...

  8. ubuntu PATH 出错修复

    我的 ubuntu10.10设置交叉编译环境时,PATH 设置错误了,导致无法正常启动,错误情况如下: { PATH:找不到命令ubuntu2010@ubuntu:~$ ls命令 'ls' 可在 '/ ...

  9. C/S和B/S 赞美创新,好酸啊。

    似乎是一个很古老的话题啊...翻出来炒冷饭也是很有趣的. 昨天聊iDempiere时说到了Client这个词,我和人家说我依然会条件反射般想到了C/S,从而又SB般感慨了一番世风日下,人心不古.... ...

  10. linux命令创建和修改用户及密码

    linux下创建用户 1.添加ftp用户 useradd ftpname -d /home/ftp passwd ftppwd 以下操作都以root权限进行: service vsftpd start ...