JS表单序列号与反序列化
jQuery有这两个方法.serializeArray()与.serialize().
.serializeArray()返回:Array描述: 将用作提交的表单元素的值编译成拥有
name和value对象组成的数组。例如[ { name: a value: 1 }, { name: b value: 2 },…]一般用于
Ajax POST
.serialize()返回:String描述: 将用作提交的表单元素的值编译成字符串。如:
single=Single&multiple=Multiple&multiple=Multiple3&check=check2&radio=radio1一般用于
GET
主要介绍.serializeArray()方法。
这个方法很方便,但是在多选的情况先会出现一些问题:
比如select,checkbox。此时返回的是[{multiple:Multiple},{multiple:Multiple3},{check:check1}},{check:check2}]
而我们期望的是[{multiple:[Multiple,Multiple3]},{check:[check1,check2]}]
而且我们通过ajax提交的请求数据根对象期望是json对象而不是直接的json数组。
针对上面说的情形我们写个工具方法用于处理:
1 | /** |
1 | /** |