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 Ajax使用FormData上传文件和其他数据后端web.py获取
Jun 11 jQuery
jQuery操作DOM_动力节点Java学院整理
Jul 04 jQuery
使用jQuery实现两个div中按钮互换位置的实例代码
Sep 21 jQuery
jQuery完成表单验证的实例代码(纯代码)
Sep 30 jQuery
jQuery简单实现对数组去重及排序操作实例
Oct 31 jQuery
jquery实现选项卡切换代码实例
May 14 jQuery
jQuery实现高级检索功能
May 28 jQuery
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
Jun 18 jQuery
jquery 回调操作实例分析【回调成功与回调失败的情况】
Sep 27 jQuery
jQuery+PHP+Ajax实现动态数字统计展示功能
Dec 25 jQuery
原生jQuery实现只显示年份下拉框
Dec 24 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之Smarty入门
2007/01/04 PHP
PHP mkdir()定义和用法
2009/01/14 PHP
《PHP编程最快明白》第八讲:php启发和小结
2010/11/01 PHP
Mac OS下配置PHP+MySql环境
2015/02/25 PHP
php+mysql实现的二级联动菜单效果详解
2016/05/10 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
PHP get_html_translation_table()函数用法讲解
2019/02/16 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
json 入门基础教程 推荐
2009/10/31 Javascript
JQuery切换显示的效果实例代码
2013/02/27 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
Angular ui.bootstrap.pagination分页
2017/01/20 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
解决vue v-for 遍历循环时key值报错的问题
2018/09/06 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
微信小程序swiper使用网络图片不显示问题解决
2019/12/13 Javascript
JavaScript Date对象功能与用法学习记录
2020/04/28 Javascript
[01:07:46]完美世界DOTA2联赛循环赛 Magma vs IO BO2第二场 11.01
2020/11/02 DOTA
python根据经纬度计算距离示例
2014/02/16 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
Django框架设置cookies与获取cookies操作详解
2019/05/27 Python
selenium+python环境配置教程详解
2019/05/28 Python
一套PHP的笔试题
2013/05/31 面试题
AJAX的优缺点都有什么
2015/08/18 面试题
求职信名称怎么写
2014/05/26 职场文书
家庭贫困证明
2014/09/23 职场文书
质量负责人岗位职责
2015/02/15 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
使用CSS连接数据库的方式
2022/02/28 HTML / CSS
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫