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实现动态删除LI的方法
May 30 jQuery
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
Jun 01 jQuery
jQuery选择器_动力节点Java学院整理
Jul 05 jQuery
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
Aug 04 jQuery
jQuery:unbind方法的使用详解
Aug 14 jQuery
jquery操作ul的一些操作笔记整理(干货)
Aug 31 jQuery
jQuery中常用动画效果函数知识点整理
Aug 19 jQuery
jQuery实现网页拼图游戏
Apr 22 jQuery
jQuery动态操作表单示例【基于table表格】
Dec 06 jQuery
jQuery表单元素过滤选择器用法实例分析
Feb 20 jQuery
js、jquery实现列表模糊搜索功能过程解析
Mar 27 jQuery
jQuery实现回到顶部效果
Oct 19 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根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
jquery中dom操作和事件的实例学习-表单验证
2011/11/30 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
代码触发js事件(click、change)示例应用
2013/12/13 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
2015/12/13 Javascript
聊一聊Vue.js过渡效果
2016/09/07 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
从零开始学习Node.js系列教程三:图片上传和显示方法示例
2017/04/13 Javascript
vue项目打包后打开页面空白解决办法
2018/06/29 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
2020/01/02 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
2020/06/24 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
2020/10/17 Javascript
采用Psyco实现python执行速度提高到与编译语言一样的水平
2014/10/11 Python
python中__call__内置函数用法实例
2015/06/04 Python
Python根据区号生成手机号码的方法
2015/07/08 Python
Python 内置函数complex详解
2016/10/23 Python
python正则表达式及使用正则表达式的例子
2018/01/22 Python
Python实现上下班抢个顺风单脚本
2018/02/07 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
2014年上半年工作自我评价
2014/01/18 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
银行竞聘上岗演讲稿
2014/09/12 职场文书
倡议书范文大全
2015/04/28 职场文书
幼儿体育课教学反思
2016/02/16 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
python爬取某网站原图作为壁纸
2021/06/02 Python