form转化json
;(function($){
/**
* 依赖jquery-1.4.2
* 依赖jquery.json-2.2,参考http://code.google.com/p/jquery-json/
* 用于将form序列化成json串,并且可以反序列化添充回来
* 作者:段旭光 2010-08-08
*/
$.fn.serializeObjectToJson = function()
{
/**
* 此方法代码参考:http://css-tricks.com/snippets/jquery/serialize-form-to-json/
*/
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
// return $.toJSON(o);
};
/**
* 按json格式添充现有form,基中json的key对应form内的元素name
* 支持input、radio、select、textarea单值或多值
* 参数json为json对象
*/
$.fn.unSerializeObjectFromJson = function(json)
{
if(!json) return;
var values=eval('('+json+')');
var form=this;
/**
* 得到现有form表单的内容,如果表单有默认值则全部清空,主要针对单值表单项,如:checkbox、radio,因为这些项如果不选中会不被序列化记录暂存,所以
* 在反序列化时,无法处理可能存在默认值的这些表单项,所以这里做一下特殊处理
*/
var defaultFormJsonValues=form.serializeObjectToJson();
$.each(defaultFormJsonValues, function(key, value){
var object=form.find("*[name='"+key+"']");
if(object.length==1){
if(object.attr("type").toLowerCase()=='radio' || object.attr("type").toLowerCase()=='checkbox'){
object.attr("checked",false);
}
}
});
//加载需要添充的表单内容
$.each(values, function(key,value){
var object=form.find("*[name='"+key+"']");//得到form内指定name的控件
if(object.length==1){
if(object.attr("type").toLowerCase()=='radio' || object.attr("type").toLowerCase()=='checkbox'){
if(object.val()==value){
object.attr("checked",true);
}
return true;
}else{
object.val(value);
}
}else if(object.length>1){
object.each(function(i){
if(object.attr("type").toLowerCase()=='radio' || object.attr("type").toLowerCase()=='checkbox'){
if($.inArray($(this).val(),value)!=-1){
$(this).attr("checked",true);
}else{
$(this).attr("checked",false);
}
}else{
$(this).val(value[i]);
}
});
}
});
};
/**
* 得到当前年的第一天
*/
$.getCurrentYearFirstDay=function(format){
var date=new Date();
var fDate=new Date(date.getFullYear(),0,1,0,0,0,0);
return $.getFormateDate(format,fDate);
};
/**
* 得到当前年的最后一天
*/
$.getCurrentYearLastDay=function(format){
var date=new Date();
var fDate=new Date(date.getFullYear(),11,31,23,59,59,999);
return $.getFormateDate(format,fDate);
};
/**
* 得到当前月的第一天
*/
$.getCurrentMonthFirstDay=function(format){
var date=new Date();
var fDate=new Date(date.getFullYear(),date.getMonth(),1,0,0,0,0);
return $.getFormateDate(format,fDate);
};
/**
* 得到当前月的最后一天
*/
$.getCurrentMonthLastDay=function(format){
var date=new Date();
var fDate=new Date(date.getFullYear(),date.getMonth()+1,0,23,59,59,999);
return $.getFormateDate(format,fDate);
};
/**
* 格式化日期
*/
$.getFormateDate = function(fmt,date){
if(!date) date=new Date();
var o={
"M+" : date.getMonth()+1, //月份
"d+" : date.getDate(), //日
"h+" : date.getHours()%12 == 0 ? 12 : date.getHours()%12, //小时
"H+" : date.getHours(), //小时
"m+" : date.getMinutes(), //分
"s+" : date.getSeconds(), //秒
"q+" : Math.floor((date.getMonth()+3)/3), //季度
"S" : date.getMilliseconds() //毫秒
};
var week={
"0" : "\u65e5",
"1" : "\u4e00",
"2" : "\u4e8c",
"3" : "\u4e09",
"4" : "\u56db",
"5" : "\u4e94",
"6" : "\u516d"
};
if(/(y+)/.test(fmt)){
fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
}
if(/(E+)/.test(fmt)){
fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "\u661f\u671f" : "\u5468") : "")+week[date.getDay()+""]);
}
for(var k in o){
if(new RegExp("("+ k +")").test(fmt)){
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
}
}
return fmt;
};
})(jQuery);
form转化json的更多相关文章
- form表单转化json对象
利用 $.fn 可以让每一个jquery 对象都能直接使用这个方法. //form表单转化json对象$.fn.serializeObject = function () { var o = {}; ...
- Js:消息弹出框、获取时间区间、时间格式、easyui datebox 自定义校验、表单数据转化json、控制两个日期不能只填一个
(function ($) { $.messageBox = function (message) { $.messager.show({ title:'消息框提示', msg:message, sh ...
- (转)基于jQuery的form转json示例
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JAVA对象转化JSON出现死循环问题
主要是解决JSON因Hibernate映射生成的集合的转化出现的死循环问题. 这个方法很重要 public String ajaxJsonByObjectDirecdt(Object obj, Str ...
- form 转json,将form表单中的数据序列化数组后转换为Json
页面中引用了jquery,第一想到的就是序列化,但是序列化后的表单字段为a=1&b=2这种. 这里写一个jquery的扩展方法 $.fn.serializeObject = function( ...
- form 转json最佳示例
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 实用ExtJS教程100例-011:ExtJS Form 使用JSON数据赋值和取值
上一节中我们演示了ExtJS Form的异步加载和提交数据,本节中我们将演示如何使用JSON数据为ExtJS Form中的字段赋值和取值. 系列ExtJS教程持续更新中,点击查看>>最新E ...
- JavaWeb 发送post请求的2种方式(form、json)
JavaWeb 发送post请求的2种方式(form.json) CreationTime--2018年6月20日10点15分 Author:Marydon 前提:通过HttpClient来实现 ...
- Request.Form to JSON
原文发布时间为:2012-03-21 -- 来源于本人的百度文章 [由搬家工具导入] NameValueCollection nvc =newNameValueCollection(Request.F ...
随机推荐
- letCode-2
letCode第二题题目如下: 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则 ...
- python基础12_匿名_内置函数
一个二分查找的示例: # 二分查找 示例 data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35, 36, ...
- 2019-04-15-day032-多进程介绍
内容回顾 基于原生socket的udp协议实现将client端发送过来的消息放到字典中 字典的key是所有客户端的地址,value是一个列表 io :输入输出, 输入到内存,向内存输入 从内存中向外( ...
- 蓝牙协议分析(9)_BLE安全机制之LL Privacy
1. 前言 在上一篇文章[1]中,我们介绍了BLE的白名单机制,这是一种通过地址进行简单的访问控制的安全机制.同时我们也提到了,这种安全机制只防君子,不防小人,试想这样一种场景: A设备表示只信任B. ...
- shell中括号的特殊用法 linux if多条件判断
一. bash [ ] 单双括号 基本要素: Ø [ ] 两个符号左右都要有空格分隔 Ø 内部操作符与操作变量之间要有空格:如 [ “a” = “b” ] Ø 字符串比较中,&g ...
- pc端 添加购物车示例
添加到购物车列表及相关商品推荐. <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- SQL 优化经历
一次非常有趣的 SQL 优化经历 阅读本文大概需要 6 分钟. 前言 在网上刷到一篇数据库优化的文章,自己也来研究一波. 场景 数据库版本:5.7.25 ,运行在虚拟机中. 课程表 #课程表 cr ...
- 创建java类并实例化类对象
创建java类并实例化类对象例一1.面向对象的编程关注于类的设计2.设计类实际上就是设计类的成员3.基本的类的成员,属性(成员变量)&方法 面向对象思想的落地法则一:1.设计类,并设计类的成员 ...
- 面向对象的编程思想和Java中类的概念与设计
面向对象的编程思想学习,面向对象内容的三条主线;1.java类及类的对象2.面向对象的三大特征3.其他关键字学习内容:3.1面向对象与面向过程面向对象与面向过程在应用上的区别 Java中类的概念与设计 ...
- python写service时全局变量问题
在尝试用flask写service的过程中,我发现全局变量使用虽然很方便,但其实是很冒险的. 本次我使用的是声明global变量的方式,如果作为本地的单次使用的程序来说,确实没有问题并且很好用,对于竞 ...