$.Form.serialize

本文介绍如何使用Prototype框架中的serialize方法将表单数据转换为适合Ajax请求的字符串或Hash对象。该方法能够处理多种表单控件,并支持将多选控件的数据以数组形式发送。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.123-cha.com/prototype/api/form/serialize.htm

 

serialize(formElement[, getHash = false]) -> String | object

串行化表单数据为字符串,以适用于 Ajax 请求(默认行为)。若指定可选的参数 getHash 值为 true,则返回一个 Hash 对象,以表单控件的名称(name 属性)为“键”,控件所代表的数据为“值”。

根据可选参数 getHash 的值是否等价于 true,返回的结果为一个形如 {name: "johnny", color: "blue"} 的对象或是一个形如 "name=johnny&color=blue" 的字符串。返回值常用于作为 Ajax 请求的参数。该方法模拟浏览器原生的串行化表单方式,以便在不刷新页面的情况下发送表单数据到服务器。

从 Prototype 1.5 开始,Ajax 请求的参数推荐使用 Hash 对象。这意味着你需要将参数 getHash 设置为 true。保留过去的做法(串行化为字符串)是为了保持后向兼容性。

样例

$('person-example').serialize() 
// -> 'username=sulien&age=22&hobbies=coding&hobbies=hiking'
$('person-example').serialize(true) 
// -> {username: 'sulien', age: '22', hobbies: ['coding', 'hiking']}

试一下!

User info

注意

表单中被禁用的元素不会被串行化(遵循 W3C HTML 建议)。另外,文件上传控件也会被忽略,因为它们不是仅通过 JavaScript 就可以进行串行化和发送的。

注意:"hobbies" 是一个多选的 SELECT 控件,如果我们要把这个控件的值传递到一个 PHP 或 ROR(Ruby on Rails)后端,该控件必须命名为 "hobbies[]",因为我们希望发送的是一个 array,而不是单个值。这与 JavaScript 没有关系——Prototype 也不会对你的控件名称做任何处理,该怎么做完全取决于你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值