打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
jQuery.param() | jQuery API中文文档(适用jQuery 1.0

这个函数 可以将表单元素的值 转换为 序列化字符串 (更多细节查阅 .serialize() )。

在 jQuery 1.3中, 这个函数的返回值被用来代替函数作为一个字符串。

在 jQuery 1.4中, $.param() 方法将会通过深度递归的方式序列化对象,以便符合现代化脚本语言和框架的需求,比如 PHP 和 Ruby on Rails。 你可以通过设置 jQuery.ajaxSettings.traditional = true;废除这个全局功能。

如果传递的对象是一个数组,它必须是一个对象数组,其格式要跟.serializeArray()返回的格式一样:

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

注意: 因为一些框架解析序列化的数字的能力有限, 在传递 obj 参数时我们应该谨慎,尽量不要传递含有对象的数组,或者数组中嵌套其它数组。

注意: 由于目前对序列化字符串没有统一的规约,此方法无法对复杂数据结构进行编码,使之可以支持所有语言。在此之前,$.param 方法将继续保持其目前的形式。

在 jQuery 1.4 HTML5中input元素也是序列化的元素。

我们可以显示一个对象的查询字符串 和一个相应的URI-decoded 版本,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
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);

recursiveEncodedrecursiveDecoded 的结果如下:

a%5Bone%5D=1&a%5Btwo%5D=2&a%5Bthree%5D=3&b%5B%5D=1&b%5B%5D=2&b%5B%5D=3
a[one]=1&a[two]=2&a[three]=3&b[]=1&b[]=2&b[]=3

在jQuery1.4之前,要模仿$.param()的行为,我们可以设置 traditional 参数为 true

1
2
3
4
5
6
7
8
9
10
11
12
13
var myObject = {
a: {
one: 1,
two: 2,
three: 3
},
b: [1,2,3]
};
var shallowEncoded = $.param(myObject, true);
var shallowDecoded = decodeURIComponent(shallowEncoded);
alert(shallowEncoded);
alert(shallowDecoded);

shallowEncodedshallowDecoded 的结果如下:

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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
jQuery param() 方法
20个JS优化代码技巧
JQuery解析Json
jquery 之validate 笔记(转载)
jQuery Validate 相关参数及常用的自定义验证规则
前端开发学习指南 | 转自菜鸟教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服