- 浏览: 132607 次
- 性别:
- 来自: 安徽
文章分类
;(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);
- jquery-1.4.2-ibm.rar (1.8 KB)
- 下载次数: 3
发表评论
-
JS强制换行
2013-04-18 15:38 1316$(function() { $(".wor ... -
Window.ShowModalDialog使用手册
2012-08-08 14:13 1184原文引自:http://www.cnblogs.com/ ... -
JS 四舍五入
2012-07-18 15:25 876原文引自:http://www.cnblogs.com/zon ... -
客户端用javascript来画图
2012-07-13 14:17 1456序:在 www.sitepoint.com ... -
My97DatePicker使用
2011-07-14 20:23 1614My97DatePicker IE6下遇到的问题: In ... -
jQuery Datepicker 日期选择插件
2011-07-04 17:21 3920在Web开发中,总会遇到 ... -
JavaScript中对象的构造方法
2011-05-31 13:13 810第一种方式: 工厂方法 ... -
为textarea 增加 maxlength 属性
2011-05-07 09:36 967為 textarea 增加 maxlength 屬性 o 如 ... -
正则表达式非法字符验证[1]
2011-05-07 09:30 2672正则表达式用于字符串 ... -
正则表达式非法字符验证[2]
2011-05-07 09:25 3109// 判断输入是否是一个 ... -
js replaceAll
2011-05-07 09:18 1141String.prototype.replaceAll = ... -
怎样阻止超链接跳转
2011-05-06 12:16 1597在用 <a href="" oncl ... -
js浮点运算bug的解决办法
2011-05-06 12:15 1138一、事件 最近在做项目的管理费,在客户端用j ...
相关推荐
这个函数首先将序列化的字符串分割成单独的键值对,然后对每一对进行解码并添加到新的`FormData`对象中。 在实际应用中,还可以考虑以下情况: - **忽略未修改的表单字段**:在序列化时,可能只希望包括已更改的...
总结来说,虽然jQuery本身不提供表单到JSON序列化的直接支持,但是通过结合serializeArray()方法、动态对象属性处理、以及自定义的序列化函数,我们可以实现这一功能。对于嵌套对象的处理特别需要注意属性名的分割和...
在C#中,我们可以使用`Newtonsoft.Json`库(Json.NET)或者内置的`System.Text.Json`来序列化对象为JSON字符串。 1. 序列化对象为JSON:首先,定义一个C#对象,然后使用Json.NET的`JsonConvert.SerializeObject`...
jQuery提供了一个方便的方法来序列化表单数据,并将其转换为JSON对象,这在使用Ajax提交表单时特别有用。本文将通过一个示例来讲解如何使用jQuery实现这一功能。 首先,我们需要一个HTML表单,如下所示: ```html ...
在C#中,可以使用Newtonsoft.Json库(通常称为Json.NET)来序列化和反序列化JSON数据。发送JSON数据的POST请求可以这样实现: ```csharp using Newtonsoft.Json; using System.Net.Http; var client = new ...
基于jquery实现的form表单的序列化与反序列化。除了基本的form元素外,增加了easyui combobox的序列化与反序列化,其它类型的如有需要可自行实现。 下拉框会怎么生成以"_...反序列化:$("#form").loadJson(JsonObj)
在JavaScript开发中,jQuery库是广泛使用的工具,它简化了DOM操作、事件处理以及Ajax交互。在处理HTML表单(form)数据...通过自定义jQuery插件,我们可以根据需求定制化表单序列化的逻辑,以适应各种复杂的业务场景。
本主题将深入探讨如何在Windows Forms(WF)环境中,利用C#语言进行对象的直接保存与读取,以及通过对象序列化和反序列化的方式实现对象的保存与恢复。 首先,我们来理解什么是对象的直接保存与读取。在C#中,可以...
在提供的文件`FrmOption.cs`中,可能包含了某个窗体(Form)的选项配置类,这个类可能利用了上述的`SerializationHelper`或其他类似的封装类来进行序列化和反序列化,以保存和加载用户自定义的设置。通过这种方式,...
1. **Ajax请求**:在发起Ajax请求时,可以直接将序列化后的JSON对象作为参数发送。 2. **表单验证**:在客户端进行表单验证时,可以利用JSON对象快速访问各个字段的值。 3. **数据存储**:在本地存储表单数据时,...
C#提供了多种序列化方式,包括XML序列化、JSON序列化和二进制序列化。例如,使用`XmlSerializer`类可以将对象转换为XML格式,而`DataContractSerializer`或`Json.NET`库则可用于JSON序列化。 反序列化则是相反的...
本文将介绍如何利用jQuery序列化form表单数据为JSON对象的实现方法,并提供实例代码来加深理解。 在Web开发中,表单提交是一个常见的操作,通常需要把表单中的数据转换成适合网络传输的格式。HTML表单通过表单元素...
反序列化则使用`JsonConvert.DeserializeObject()`。 例如: ```csharp using Newtonsoft.Json; public class User { public string Name { get; set; } public int Age { get; set; } } User user = new User...
接下来,我们将创建一个空对象`o`来存储序列化的JSON数据: ```javascript var o = {}; ``` 然后,我们使用`jQuery.each()`遍历由`serializeArray()`返回的数组: ```javascript jQuery.each(fields, function(i,...
form提交的时候以json对象的方式传递,需要使用的转化工具。
序列化是将对象的状态转换为可持久化的格式(如XML、JSON或二进制),以便于存储或传输。反序列化则是相反的过程,即从这种格式恢复对象。在.NET Framework中,.NET序列化框架提供了实现这一过程的工具和类。 二、...
这些字段被放置在一个`<form>`元素内,并且每个输入元素都有一个`name`属性,这是序列化成键值对的关键。 接下来,我们使用jQuery的`.serializeArray()`方法来自动将表单中的数据转换成JSON对象。`.serializeArray...
在C#编程中,序列化是一个重要的概念,它允许我们将对象的状态转换为可存储或可传输的数据格式。本文主要探讨的是二进制...在实际开发中,根据项目需求,还可以考虑使用其他序列化技术,如XML序列化、JSON序列化等。