如何用serializeJSON将表单数据序列化为JSON格式?
- 内容介绍
- 文章标签
- 相关推荐
本文共计199个文字,预计阅读时间需要1分钟。
当异步处理数据时,jQuery 提供了 serialize 和 serializeArray 方法来获取表单数据,但有时我们需要的是 JSON 数据。以下是简化后的代码示例:
javascript$.fn.serializeJSON=function(options) { var opts=$.extend({}, options); // 省略代码...};
当异步处理数据是jquery很好的提供了serialize与serializeArray方法来获取表单数据但是有时我们需要的是JSON数据
1.[代码]serializeJSON
(function($) { $.fn.serializeJSON = function(options) { var opts = $.extend({}, $.fn.serializeJSON.defaults, options); var toArray = function(value,char){ return value.split(char); } var formData = this.serialize(); var params = toArray(formData,"&"); var resultJSON={}; var connecter = function(name,source,value){ if(!value || value.length<1)return source; var char = opts.connectName[name]?opts.connectName[name]:opts.connect; return source+char+value; } $.each(params,function(){ var param = toArray(this,"="); var attr = param[0]; var val = param[1]; if(resultJSON[attr]){//multi resultJSON[attr] = connecter(attr,resultJSON[attr],val); }else{ resultJSON[attr] = val; } }) return resultJSON; }; $.fn.serializeJSON.defaults = { connectName:{}, connect:"," }; })(jQuery);
本文共计199个文字,预计阅读时间需要1分钟。
当异步处理数据时,jQuery 提供了 serialize 和 serializeArray 方法来获取表单数据,但有时我们需要的是 JSON 数据。以下是简化后的代码示例:
javascript$.fn.serializeJSON=function(options) { var opts=$.extend({}, options); // 省略代码...};
当异步处理数据是jquery很好的提供了serialize与serializeArray方法来获取表单数据但是有时我们需要的是JSON数据
1.[代码]serializeJSON
(function($) { $.fn.serializeJSON = function(options) { var opts = $.extend({}, $.fn.serializeJSON.defaults, options); var toArray = function(value,char){ return value.split(char); } var formData = this.serialize(); var params = toArray(formData,"&"); var resultJSON={}; var connecter = function(name,source,value){ if(!value || value.length<1)return source; var char = opts.connectName[name]?opts.connectName[name]:opts.connect; return source+char+value; } $.each(params,function(){ var param = toArray(this,"="); var attr = param[0]; var val = param[1]; if(resultJSON[attr]){//multi resultJSON[attr] = connecter(attr,resultJSON[attr],val); }else{ resultJSON[attr] = val; } }) return resultJSON; }; $.fn.serializeJSON.defaults = { connectName:{}, connect:"," }; })(jQuery);

