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']}
试一下!
注意
表单中被禁用的元素不会被串行化(遵循 W3C HTML 建议)。另外,文件上传控件也会被忽略,因为它们不是仅通过 JavaScript 就可以进行串行化和发送的。
注意:”hobbies” 是一个多选的 SELECT 控件,如果我们要把这个控件的值传递到一个 PHP 或 ROR(Ruby on Rails)后端,该控件必须命名为 “hobbies[]”,因为我们希望发送的是一个 array,而不是单个值。这与 JavaScript 没有关系——Prototype 也不会对你的控件名称做任何处理,该怎么做完全取决于你。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/13669.html