通过AJAX请求向服务器发送数据时,通过以下方式给出要发送的数据,这些数据往往来自HTML表单。
- 字符串:name1=value1&name2=value2
- 映射方式:{name:"value1",name2:"value2"}
这些数据来自于HTML表单,使用以下三种方法可以对表单序列化方法,从而编减编程。
一:serialize()方法
serialize()方法是用于序列化一组表单元素,将表单元素编码为可提交的字符串。操作对象为代表表单元素的jQuery对象。
serialize()(序列化函数,筛选出表单中需要提交的数据并以序列化字符串方式返回,形如:“key=value&key=value…”)
serialize()方法需要使用“按钮”提交,如未使用按钮提交表单,将不对表单的值进行序列化。
如果要表单元素的值包含到序列字符串中,元素必须使用name属性;例如:
<input type="text" name="username" value="">
语法:('selector').serialize();
二:serializeArray()方法
serializeArray()方法其实就是把表单序列化为json数组,带有name和value的json;
serializeArray()(筛选出表单中需要提交的数据并以key/value键值对的对象数组格式返回,返回[{name:’key’,value:’select1’},{name:’selectM’,value:’selectM1’}, {name:’selectM’,value:’selectM2’}, { name:’key2’,value:0}…])
serializeArray()是将页面序列成一个json结构的对象;注意并不是json字符串。
语法:('selector').serializeArray();
例如:$("form").submit(function() {
console.log($(this).serializeArray());
return false;
});
上面的代码产生下面的数据结构(假设浏览器支持 console.log):
[ {name: a,value: 1 },
{name: b,value: 2 },
{ name: c, value: 3},
{name: d,value: 4 },
{name: e, value: 5} ]
三:param()方法
param()方法是将key/value键值对的对象数组序列化为“key=value&key=value…”字符串