jQuery.param( obj ); 返回一个String
描述: 创建一个数组或对象序列化的的字符串,适用于一个URL 地址查询字符串或Ajax请求。
jQuery.param( obj );
-
obj类型: Array, Object用于数组或序列化的对象。
jQuery.param( obj, traditional );
-
obj类型: Array, Object用于数组或序列化的对象。
-
traditional类型: Boolean一个布尔值,指示是否执行了传统的“shallow”的序列化。
这个函数 可以将表单元素的值 转换为 序列化字符串 (更多细节查阅 .serialize() )。
在 jQuery 1.3中, 这个函数的返回值被用来代替函数作为一个字符串。
在 jQuery 1.4中, $.param()
方法将会通过深度递归的方式序列化对象,以便符合现代化脚本语言和框架的需求,比如 PHP 和 Ruby on Rails。 你可以通过设置 jQuery.ajaxSettings.traditional = true;
废除这个全局功能。
如果传递的对象是一个数组,它必须是一个对象数组,其格式要跟.serializeArray()返回的格式一样:
[{name:"first",value:"Rick"}, {name:"last",value:"Astley"}, {name:"job",value:"Rock Star"}]
注意: 因为一些框架解析序列化的数字的能力有限, 在传递 obj
参数时我们应该谨慎,尽量不要传递含有对象的数组,或者数组中嵌套其它数组。
注意: 由于目前对序列化字符串没有统一的规约,此方法无法对复杂数据结构进行编码,使之可以支持所有语言。 在此之前, $.param
方法将继续保持其目前的形式。
在 jQuery 1.4 HTML5中input元素也是序列化的元素。
我们可以显示一个对象的查询字符串 和一个相应的URI-decoded 版本,如下:
var myObject = { a:{ one:1, two:2, three:3 }, b:[1,2,3] }; var recursiveEncoded = $.param(myObject); var recursiveDecoded = decodeURIComponent($.param(myObject)); alert(recursiveDecoded); alert(recursiveEncoded);
recursiveEncoded
和 recursiveDecoded
的结果如下:
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
:
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);
shallowEncoded
和 shallowDecoded
的结果如下:
a=%5Bobject+Object%5D&b=1&b=2&b=3
a=[object+Object]&b=1&b=2&b=3
例子:
<!DOCTYPE html> <html> <head> <style>div { color:red; }</style> <script src="http://code.jquery.com/jquery-latest.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>
Demo:
width=1680&height=1050
序列号一些复杂的对象:
// <=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"
相关推荐
Python函数是编程中不可或缺的一部分,它们允许我们组织代码并重用功能。函数分为两种主要类型:内置函数和自定义函数。 内置函数是Python语言预先定义并提供的功能,无需额外导入即可直接使用。以下是一些常见的...
在本示例中,我们关注的是"jquery3.0.min.js"和"jquery.param.js"这两个jQuery库的特定版本,以及如何利用它们来解决跨域数据传输的问题。在"跨域代码Demo"中,我们将探讨如何通过URL参数实现Tomcat服务器与WebStorm...
### 学习技术 JSF必备 —— JSF标签详解 #### 1. JSF标签概述 JavaServer Faces (JSF) 是一种用于构建基于组件的用户界面的Java Web框架。它提供了一组丰富的标签库,使得开发人员能够更加高效地创建动态网页应用...
String param1 = args.getString("param1"); } ``` 5. **Fragment嵌套**:一个Fragment中可以包含其他Fragment,这有助于构建复杂布局。但需要注意的是,过多的嵌套可能会影响性能。 6. **保存和恢复状态**:当...
**jQuery.param**是jQuery库中的一个非常重要的函数,主要用于序列化JavaScript对象,使其适合作为HTTP请求(如GET或POST)的一部分。这个功能在处理AJAX请求时尤其有用,因为浏览器通常要求URL参数以特定格式(即...
在今天的编程学习中,我们深入理解了几个关键的Java编程概念,包括三元条件运算符、扩展赋值运算符、包机制以及Javadoc的使用。接下来,我们将详细探讨这些知识点。 首先,我们接触到了扩展赋值运算符,例如`+=`、`...
理解`UnsupportedOperationException`并知道在处理集合参数时正确使用MyBatis的`<foreach>`标签是Java开发者必须掌握的关键技能之一。这有助于编写更健壮、可维护的代码,并减少因不兼容操作而导致的错误。在实际...
} /** ListView 获取数据时调用的函数 * @brief MyListViewModel::data * @param index QModelIndex 对象,用于定位数据的位置 * @param role 角色,决定返回哪个部分的数据,默认为 Qt::DisplayRole * @return ...
* @param ${PARAM_NAME} ${PARAM_DOC} * @return ${RETURN_DOC} * @throws ${EXCEPTION_DOC} */ ``` 6. 编辑变量,如 `${USER}`、`${DATE}` 和 `${PARAM_NAME}` 等,确保它们在实际使用时能正确替换为相应值。 ...
这里提供了一个名为`getValueByName`的函数,它接收两个参数:URL字符串和需要查找的参数名,然后返回对应的参数值。这个函数的工作原理是: 1. 查找URL中问号(?)的位置,以确定查询字符串的起始位置。 2. 提取...
### JavaScript调用Java方法——DWR使用步骤详解 #### 一、DWR简介 DWR (Direct Web Remoting) 是一种使服务器端的Java对象能够被客户端JavaScript代码直接调用的技术。通过这种方式,开发人员可以轻松地实现客户端...
Hutool是一款强大的Java工具类库,其设计目标是简化常见的开发任务,避免开发者重复编写通用的工具类。Hutool由" Hu"+"tool"组成,"Hu"来源...如果你想深入了解Hutool,可以访问其官方网站或GitHub仓库进行学习和使用。
主要介绍了原生JS实现$.param() 函数的方法,由于遇到相关序列化的问题,但是vue项目中由于减少队jquery引用的限制,导致不能用$.param来序列化参数,下面小编给大家分享了实例代码,需要的朋友参考下吧
@RequestParam("param") String param) // 接收前端附加的JSON字符串参数 throws IllegalStateException, IOException { // 将JSON字符串解析为HashMap对象 HashMap, Object> hashMap = JSON.parseObject(param...
在本篇Linux内核实验报告——实验4中,主要涵盖了两个关键知识点:动态模块设计和proc文件系统。实验目的是让学生理解和掌握Linux内核模块的编写,以及如何通过proc文件系统来与用户空间交互。 首先,实验A部分涉及...
### JAVA调用RFCdoc - ERP顾问最热爱的网络——金蝶社区 #### 一、概述 本文档旨在介绍如何利用JAVA技术调用SAP系统的远程功能模块(RFC)。通过这种方式,开发人员能够轻松地在JAVA应用中集成SAP系统的业务逻辑。...
在本文中,我们将深入探讨jQuery自定义插件的开发基础,特别是如何实现jQuery实用函数。首先,我们需要了解jQuery的核心理念,它是一个轻量级的JavaScript库,极大地简化了DOM操作、事件处理、动画效果和Ajax交互。...
通过实际操作,学习者能够掌握如何在内核中创建动态模块,以及如何利用Proc文件系统来实现动态数据的交互,这对于Linux驱动程序的开发和系统维护至关重要。通过这样的实践,开发者能够更好地适应Linux内核的可扩展性...
`org.apache.ibatis.annotations.Param`是MyBatis中的一个重要注解,用于处理方法参数映射。 `@Param`注解主要用于SQL查询中的动态参数绑定,尤其是在动态SQL语句中。在MyBatis的映射文件或者Mapper接口中,当我们...
页面上jQuery需要把一个复杂类型的javascript数组对象作为参数传到Struts2 action,但是他们的默认格式不匹配导致action无法正确获得参数。...改jQuery源码并不是个好做法,最好是做个patch把$.param()覆盖掉.