EasyUI 另一种form提交方式
(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提交方式的更多相关文章
- Flink Yarn的2种任务提交方式
Flink Yarn的2种任务提交方式 Pre-Job模式介绍 每次使用flink run运行任务的时候,Yarn都会重新申请Flink集群资源(JobManager和TaskManager),任务执 ...
- 表单<form></form>提交方式的区别
<form action="" method="get/post"> 表单<form></form>的提交方式有两种:pos ...
- form提交方式Get与Post详解
form作为Html的一个元素,它就是为了客户端提交数据而产生的,它有两个很重要的属性action和method,action属性指明了处理提交的数据的应用程序的URL,而method有两个值:POS ...
- jquery的几种ajax提交方式
$.post( url, function(data){ if(data.retcode == "0"){ alert(data.retmsg); }else{ alert(dat ...
- jQuery - 几种异步提交方式
$.post(url,params,callback); $.post("${ctx}/role/grant", {userId : $("#userId"). ...
- jquery.validate+jquery.form提交的三种方式
原文:http://www.cnblogs.com/datoubaba/archive/2012/06/06/2538873.html jquery.validate+jquery.form提交的三种 ...
- springMVC怎么改变form的提交方式为put或者delete
想着练习一下创建restful风格的网站呢,结果发现在jsp页面上并不能灵活使用put和delete提交方式.下面我的解决办法 一. form 只支持post和get两种提交方式,只支持get提交方式 ...
- jquery.validate校验+jquery.form提交,配合使用
原文链接:http://www.cnblogs.com/datoubaba/archive/2012/06/06/2538873.html 概述:本篇主要讨论jquery.validate结合jque ...
- ajax Form提交与Payload提交
后端处理前端提交的数据时,既可以使用Form解析,也可以使用JSON解析Payload字符串. Form解析可以直接从Request对象中获取请求参数,这样对象转换与处理相对容易,但在大片JSON数据 ...
随机推荐
- Objective-C中3种枚举比较及KVC两个小技巧
Objective-C中3种枚举比较及KVO两个小技巧 一:oc的3种枚举 for循环 for in 枚举块 如代码 NSUInteger totalCount = 10000; NSMutableA ...
- 关于npm本地安装模块包(node_modules),安装不了的问题
单独测试的时候,发现安装不了node_modules包 缺少package.json,无法安装. 分为以下两步: 1.npm init -y 2.npm i -D vue 或 yarn add vue
- 【转】阻塞与非阻塞socket的优缺点
转自:http://wenku.baidu.com/link?url=V-TghOmERC0eq0aoXEyhpTw3W5OlqbItwTJE_csI29ysi9vKkCG1lDxq0wWdpImvg ...
- 通过micrometer实时监控线程池的各项指标
通过micrometer实时监控线程池的各项指标 前提 最近的一个项目中涉及到文件上传和下载,使用到JUC的线程池ThreadPoolExecutor,在生产环境中出现了某些时刻线程池满负载运作,由于 ...
- 安卓手机GPU OpenCL总结(转)
前段时间,把市面上手机GPU OpenCL支持情况做了一个总结.总结如下: 目前,手机 GPU 市面有四个公司产品:Qualcomm, Imagination Technologies,ARM, Vi ...
- NSArray利用Cocoa框架进行汉字排序
NSArray利用Cocoa框架进行汉字排序 在NSString有一个函数localizedCompare:,它的功能是通过自身与给定字符串的比較,返回一个本地化的比較结果.也就是说这个函数是支持汉字 ...
- EL和自定义函数库
问题:在数据显示的时候经常需要调用一些方法对需要显示的数据进行基本的处理,如: 数据过滤.求子串等操作.那么就需要使用EL表达式进行快速的函数调用. 引入HTMLFilter.java类 描述为函数 ...
- MySQL修改root密码的各种方法整理(转)
整理了以下四种在MySQL中修改root密码的方法,可能对大家有所帮助! 方法1: 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR ' ...
- 用PL/pgSQL写postgreSQL的存储过程[转]
http://blog.chinaunix.net/uid-7591044-id-1742967.html 今天学会了用 PL/pgSQL 写 postgreSQL 的存储过程,网上资料实在少得可怜, ...
- node定时任务——node-schedule模块使用说明
在实际开发项目中,会遇到很多定时任务的工作.比如:定时导出某些数据.定时发送消息或邮件给用户.定时备份什么类型的文件等等. 一般可以写个定时器,来完成相应的需求,在node.js中自已实现也非常容易, ...