Jquery 将表单序列化为Json对象

jQuery表单序列化为json对象插件 前言:我们在开发web的时候,往往会用到表单的序列化,这里写了一个表单序列化的插件,第一次写可 能还不是很好!上一篇转载的文章介绍了如何写jQuery插件,如果有看不懂的jQuery插件的可 以参考一下上一篇文章!知识点一:写Jquery插件插件代码:(function ($) { $.fn.getFormJSON = function (options) { var def 阅读详情

大家知道Jquery中有serialize方法,可以将表单序列化为一个“&”连接的字符串,但却没有提供序列化为Json的方法。不过,我们可以写一个插件实现。

 

我在网上看到有人用替换的方法,先用serialize序列化后,将&替换成“:”、“‘”:

Js代码   收藏代码
  1. /**  
  2.      * 重置form表单  
  3.      * @param formId  form的id   
  4.      */    
  5.     function resetQuery(formId){    
  6.         var fid = "#" + formId;    
  7.         var str = $(fid).serialize();    
  8.         //str= cardSelectDate=3&startdate=2012-02-01&enddate=2012-02-04    
  9.         var ob= strToObj(str);    
  10.         alert(ob.startdate);//2012-02-01    
  11.     }    
  12.         
  13.     function strToObj(str){    
  14.         str = str.replace(/&/g,"','");    
  15.         str = str.replace(/=/g,"':'");    
  16.         str = "({'"+str +"'})";    
  17.         obj = eval(str);     
  18.         return obj;    
  19.     }    

个人感觉这样做有bug。

 

我的方法是,先用serializeArray序列化为数组,再封装为Json对象。

 

 

下面是表单:

 


Html代码   收藏代码
  1. <form id="myForm" action="#">  
  2.     <input name="name"/>  
  3.     <input name="age"/>  
  4.     <input type="submit"/>  
  5. </form>  

 

Jquery插件代码如下:

 

Js代码   收藏代码
  1. (function($){  
  2.         $.fn.serializeJson=function(){  
  3.             var serializeObj={};  
  4.             $(this.serializeArray()).each(function(){  
  5.                 serializeObj[this.name]=this.value;  
  6.             });  
  7.             return serializeObj;  
  8.         };  
  9.     })(jQuery);  

 

 

下面测试一下:$("#myForm").bind("submit",function(e){

Js代码   收藏代码
  1.     e.preventDefault();  
  2.     console.log($(this).serializeJson());  
  3. });  

测试结果:

输入a,b提交,得到序列化结果

{age: "b",name: "a"}

 

 

上面的插件,不能适用于有多个值的输入控件,例如复选框、多选的select。下面,我将插件做进一步的修改,让其支持多选。代码如下:

 

Js代码   收藏代码
  1. (function($){  
  2.         $.fn.serializeJson=function(){  
  3.             var serializeObj={};  
  4.             var array=this.serializeArray();  
  5.             var str=this.serialize();  
  6.             $(array).each(function(){  
  7.                 if(serializeObj[this.name]){  
  8.                     if($.isArray(serializeObj[this.name])){  
  9.                         serializeObj[this.name].push(this.value);  
  10.                     }else{  
  11.                         serializeObj[this.name]=[serializeObj[this.name],this.value];  
  12.                     }  
  13.                 }else{  
  14.                     serializeObj[this.name]=this.value;   
  15.                 }  
  16.             });  
  17.             return serializeObj;  
  18.         };  
  19.     })(jQuery);  

这里,我将多选的值封装为一个数值来进行处理。如果大家使用的时候需要将多选的值封装为“,"连接的字符串或者其他形式,请自行修改相应代码。

 

测试如下:

表单:

 

Html代码   收藏代码
  1. <form id="myForm" action="#">  
  2.     <input name="name"/>  
  3.     <input name="age"/>  
  4.     <select multiple="multiple" name="interest" size="2">  
  5.         <option value ="interest1">interest1</option>  
  6.         <option value ="interest2">interest2</option>  
  7.         <option value="interest3">interest3</option>  
  8.         <option value="interest4">interest4</option>  
  9.     </select>  
  10.     <input type="checkbox" name="vehicle" value="Bike" /> I have a bike  
  11.     <input type="checkbox" name="vehicle" value="Car" /> I have a car  
  12.     <input type="submit"/>  
  13. </form>  

测试结果:

{age: "aa",interest: ["interest2", "interest4"],name: "dd",vehicle:["Bike","Car"]}

前端from表单序列化json插件依赖json2 jquery from表单序列化json插件 , 插件支持key-value数据的存储 one-many 立即下载

相关推荐

jquery将一个表单序列化为一个对象的方法

代码如下: var aa=function(form){ var o={}; $.each(form.serializeArray(),function(index){ if(o[this[‘name’]]){ o[this[‘name’]] = o[this[‘name’]]+”,”+this[‘value’]; }else{ o[this[‘name’]] = this[‘value’]; } }); return o; } 只要传递一个form对象进去就可以.经过方法处理就可以返回一个对象.例如console.info(aa($(“#myForm”)));可以把这个在火狐浏览器里面试试效

jQuery 表单数据序列化为json格式

jQuery是在web应用中使用的脚本语言之一,因其具有轻量级,易学易用等特点,已广泛应用,其中的ajax封装简化了我们的应用,对其表单数据序列化用如下方法: 1.serialize()方法   格式:var data = $("#formID").serialize();   功能:将表单内容序列化成一个字符串。   这样在ajax提交表单数据时,就不用一一列举出每一个参

思维空间 7214

博士申请-考核制经验分享(2)——个人简历

申博过程中一般在联系导师时就将个人简历作为邮件附件,有些学校也会在提交材料或者复试阶段提交个人简历。

weixin_49282401的博客 5524

jquery将表单数据序列化json数据

使用jquery绑定按钮的单击事件序列化表单的值。,所以,我们使用序列化时可以灵活选择方法。使用方法为和前面两种一样,方法名改为。我这里的两个输入框的name值为。Jquery序列化表单数据。,单选按钮的name为。

likemj01的博客 1316

深入解析线性反馈移位寄存器(LFSR)的工作原理与实现

本文深入解析了线性反馈移位寄存器(LFSR)的核心原理与实现方法。通过生动的比喻和详细的步骤拆解,阐述了LFSR如何通过反馈多项式和移位操作生成伪随机序列,并对比了斐波那契型与伽罗瓦型两种硬件结构。文章还涵盖了LFSR在数字电路测试、通信扰码及快速伪随机数生成等关键应用场景,同时指出了其在密码学中的局限性,并提供了Python和C语言的高效实现代码示例。

weixin_29007243的博客 544

MobaXterm破解14个会话限制的保姆级教程(附Python环境配置指南)

本文提供了MobaXterm破解14个会话限制的详细教程,并深入讲解了如何配置稳定的Python环境以支持相关脚本运行。通过理解软件授权机制、安全实践步骤以及许可文件的应用,帮助用户解除会话数量限制,实现高效的远程服务器管理与自动化运维。

weixin_29211309的博客 1640

在jQueryEasyUI中把表单内容转化成json格式的方法并且把查询到的结果显示到页面上

$.fn.serializeJson=function(){               var serializeObj={};               var array=this.serializeArray();               var str=this.serialize();               $(array).each(function(){  

Smile_xu_OoO的博客 2479

ESP32+ST7789 LCD屏实战:5分钟搞定中文显示与图片渲染(附完整代码)

本文提供了一份详细的ESP32驱动ST7789 LCD屏幕的实战指南。通过清晰的SPI硬件连接说明、ESP-IDF框架下的初始化代码,以及图片渲染与中文字库构建的核心算法,帮助开发者快速实现中文显示与图片渲染功能,并附有完整的代码示例和性能优化技巧。

weixin_29189377的博客 437

jquery serializeobject();方法序列化表单的属性,将表单转换成json格式

对表单序列化,得到字符串,如 a=1&b=2&c=3 这种格式 var params =$('#form').serialize(); params = decodeURIComponent(params,true);//对serialize后的参数值进行一次解码,防止中文乱码 但是我需要将表单数据转换成json格式的。 得到数据格式{a:1,b:2,c:3} 如...

简析的博客 1271

两轮差速移动机器人运动分析、建模和控制

两轮差速运动分析及建模运动学分析三种运动状态分析函数模型仿真验证直线验证曲线验证旋转验证运动控制 运动学分析 运动特性为两轮差速驱动,其底部后方两个同构驱动轮的转动为其提供动力,前方的随动轮起支撑作用并不推动其运动,如图1两轮差速驱动示意图所示。 定义其左右驱动轮的中心分别为Wl和Wr,且对应线速度为Vl和Vr,该值可以通过电机驱动接口输出的角转速ωl,ωr2和驱动轮半径r求得,即: Vl=r⋅...

启小新的博客 8万+

STM32F407+LAN8720网口不通?别慌,手把手教你用CubeMX和HAL库搞定RMII配置与调试

本文详细介绍了STM32F407与LAN8720网口不通的全面排查与解决方法,涵盖硬件检查、CubeMX配置、PHY芯片初始化和LWIP协议栈优化。通过RMII接口配置、时钟树设置和PHY芯片调试,帮助开发者快速定位并解决网络连接问题,提升嵌入式网络开发效率。

weixin_30457551的博客 506

基于jQuery.form.js将表单序列化为json对象

基于jQuery.form.js将表单序列化为json对象 jQuery.form.js表单插件,可以让您轻松地在HTML表单中使用AJAX。主要的方法,ajaxForm和ajaxSubmit从表单元素,收集信息,以决定如何管理提交过程。更多方法:formToArray,formSerialize,fieldSerialize,fieldValue,clearForm,clearFields,r...

隔壁老瓦的专栏 2475

全本地AI代理实战:零数据外泄的本地化Agent工作流搭建

全本地AI代理是一种将大语言模型推理、长期记忆与工具调用完全运行于用户本地设备的智能体架构,其核心原理在于通过进程隔离与标准化协议实现模型层、记忆层和工具层的解耦协同。相比依赖云端API的传统方案,它在数据主权、响应确定性与环境复现性上具备不可替代的技术价值。典型应用场景包括法务合规文档处理、离线工业现场辅助决策、以及高敏感度企业知识管理。本文聚焦Qwen2+Ollama+SurrealDB+Agno技术栈,详解如何构建可落地的全本地AI代理系统,覆盖从硬件适配、向量记忆建模到多模态插件协同的完整链路。

weixin_34194964的博客 650

Jquery 将表单序列化为Json对象.同时提交多个表单的参数

首先对某一表单进行Json对象序列化:    引用:http://my249645546.iteye.com/blog/1617872   [javascript] view plain copy   (function($){           $.fn.serializeJson=function(){             

程序猿开发日志【学习永无止境】 3451

Wordpress实战之第二章安装wordpress 软件需要的软件

使用下载并安装phpstudy面版工具 wget -O install.sh?https://notdocker.xp.cn/install.sh?&& sudo bash install.sh 2.安装成功如下 ==============运行状态========================= webpanel stop phpstudy running =================...

安全参透之旅 611

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

jQuery 将表单序列化为Json对象

(function($){ $.fn.serializeJson=function(){ var serializeObj={}; var array=this.serializeArray(); var str=this.serialize(); $(array).each(function(){ if(serializeObj[this.name...

weixin_30597269的博客 89

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【jQuery】form表单元素序列化为json对象

  序列化form表单元素为json对象: 1 <!Doctype html> 2 <html xmlns=http://www.w3.org/1999/xhtml> 3 <head> 4 <title>jQuery扩展——form序列化到json对象</title> 5 <meta http-e...

weixin_30319153的博客 90

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: JavaScript模块化,CommonJS、AMD与CMD的区别
下一篇: js最新手机号码、电话号码正则表达式
! 不再维护
博客等级 码龄11年 63粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值