jquery.param()实现数组或对象的序列化方法


Posted in jQuery onOctober 08, 2018

jQuery.param( obj ):

创建适用于URL查询字符串或Ajax请求的数组,普通对象或jQuery对象的序列化表示形式。 如果jQuery对象被传递,它应该包含具有name / value属性的输入元素。

jQuery.param( obj ):
 
obj:
 
类型:Array或PlainObject或jQuery
 一个数组,一个普通的对象,或一个jQuery对象进行序列化。
 jQuery.param( obj, traditional ):
 
obj:
 
类型:Array或PlainObject或jQuery
 一个数组,一个普通的对象,或一个jQuery对象进行序列化。
 
traditional :

 类型:布尔值
 一个布尔值,表示是否执行传统的“浅”序列化。

内部使用此函数将表单元素值转换为序列化字符串表示形式(有关更多信息,请参阅.serialize())。

从jQuery 1.3开始,使用函数的返回值代替函数作为String。

从jQuery 1.4开始,$ .param()方法递归序列化深层对象,以适应现代脚本语言和框架,如PHP和Ruby on Rails。

您可以通过设置jQuery.ajaxSettings.traditional = true来全局禁用此功能。从jQuery 3.0开始,$ .param()方法不再使用jQuery.ajaxSettings.traditional作为其默认设置,默认为false。

为了跨版本的最佳兼容性,请调用$ .param()和第二个参数的显式值,并且不要使用默认值。如果传递的对象在数组中,则它必须是由.serializeArray()返回的格式的对象数组。

[
 { name: "first", value: "Rick" },
 { name: "last", value: "Astley" },
 { name: "job", value: "Rock Star" }
]

注意:由于某些框架解析序列化数组的能力有限,因此开发人员在传递包含嵌套在另一个数组中的对象或数组的obj参数时应谨慎。

注意:由于没有普遍约定的param字符串规范,所以不可能以支持此类输入的所有语言的理想方式对使用此方法的复杂数据结构进行编码。 使用JSON格式替代编码复杂数据。

在jQuery 1.4中,HTML5输入元素也被序列化。我们可以显示一个对象的查询字符串表示形式和一个URI解码版本,如下所示:

var myObject = {
 a: {
 one: 1,
 two: 2,
 three: 3
 },
 b: [ 1, 2, 3 ]
};
var recursiveEncoded = $.param( myObject );
var recursiveDecoded = decodeURIComponent( $.param( myObject ) );
alert( recursiveEncoded );
alert( recursiveDecoded );

shallowEncoded和shallowDecoded的值弹出如下:

a=%5Bobject+Object%5D&b=1&b=2&b=3 
a=[object+Object]&b=1&b=2&b=3

举例:

序列化一个键/值对象。

<!doctype html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <title>jQuery.param demo</title>
 <style>
 div {
 color: red;
 }
 </style>
 <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<div id="results"></div>
 
<script>
var params = { width:1680, height:1050 };
var str = jQuery.param( params );
$( "#results" ).text( str );
</script>
 
</body>
</html>

演示:

序列化一些复杂的对象

// <=1.3.2:
$.param({ a: [ 2, 3, 4 ] }); // "a=2&a=3&a=4"
// >=1.4:
$.param({ a: [ 2, 3, 4 ] }); // "a[]=2&a[]=3&a[]=4"
 
// <=1.3.2:
$.param({ a: { b: 1, c: 2 }, d: [ 3, 4, { e: 5 } ] });
// "a=[object+Object]&d=3&d=4&d=[object+Object]"
 
// >=1.4:
$.param({ a: { b: 1, c: 2 }, d: [ 3, 4, { e: 5 } ] });
// "a[b]=1&a[c]=2&d[]=3&d[]=4&d[2][e]=5"

以上这篇jquery.param()实现数组或对象的序列化方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery插件之validation插件
Mar 29 jQuery
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
jquery 给动态生成的标签绑定事件的几种方法总结
Feb 24 jQuery
使用jquery DataTable和ajax向页面显示数据列表的方法
Aug 09 jQuery
使用jquery Ajax实现上传附件功能
Oct 23 jQuery
jQuery实现的隔行变色功能【案例】
Feb 18 jQuery
jquery 时间戳转日期过程详解
Oct 12 jQuery
jQuery 选择器用法基础入门示例
Jan 04 jQuery
jQuery Datatables 动态列+跨列合并实现代码
Jan 30 jQuery
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
Feb 01 jQuery
JavaScript枚举选择jquery插件代码实例
Nov 17 jQuery
jquery插件实现图片悬浮
Apr 16 jQuery
jQuery实现点击图标div循环放大缩小功能
Sep 30 #jQuery
学习jQuery中的noConflict()用法
Sep 28 #jQuery
jQuery序列化form表单数据为JSON对象的实现方法
Sep 20 #jQuery
jQuery pjax 应用简单示例
Sep 20 #jQuery
jQuery easyui datagird编辑行删除行功能的实现代码
Sep 20 #jQuery
jQuery 点击获取验证码按钮及倒计时功能
Sep 20 #jQuery
jQuery使用each遍历循环的方法
Sep 19 #jQuery
You might like
PHP HTML代码串 截取实现代码
2009/06/29 PHP
PHP中遍历stdclass object的实现代码
2011/06/09 PHP
Yii框架上传图片用法总结
2016/03/28 PHP
php实现 master-worker 守护多进程模式的实例代码
2019/07/20 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
Jquery 常用方法经典总结
2010/01/28 Javascript
js异常捕获方法介绍
2013/04/10 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
js获取php变量的实现代码
2013/08/10 Javascript
禁止拷贝网页内容的js代码
2014/01/22 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
微信小程序 绘图之饼图实现
2016/10/24 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
Angular模版驱动表单的使用总结
2018/05/05 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
2019/05/15 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
[54:17]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第二场 1月10日
2021/03/11 DOTA
Python异常学习笔记
2015/02/03 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
Python Pandas找到缺失值的位置方法
2018/04/12 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
2019/09/06 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
2020/02/05 Python
几道PHP面试题
2013/04/14 面试题
石油大学毕业生自荐信
2014/01/28 职场文书
KTV的创业计划书范文
2014/02/02 职场文书
教师师德反思材料
2014/02/15 职场文书
购房委托书范本
2014/09/18 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
债务追讨律师函
2015/06/24 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书
小米11和iphone12哪个值得买?小米11对比iphone12评测
2021/04/21 数码科技
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python