之前只知道serialize方法,感觉很方便。用ajax提交表单的时候,就可以用这个方法来把数据格式化。
后来,因为可能要先把数据处理一下再提交,所以每次把数据提取出来都是一段长代码,今天突然发现了serializeArray这个方法,感觉一切都简单多了。
借用w3school的例子:
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
x=$("form").serializeArray();
$.each(x, function(i, field){
$("#results").append(field.name + ":" + field.value + " ");
});
});
});
</script>
</head>
<body>
<form action="">
First name: <input type="text" name="FirstName" value="Bill" /><br />
Last name: <input type="text" name="LastName" value="Gates" /><br />
</form>
<button>序列化表单值</button>
<div id="results"></div>
</body>
</html>
[{
name: "FirstName",
value: "Bill"
},{
name: "LastName",
value: "Gates"
}]
然后就可以用循环的方法处理每个数据。
另外serialize()方法就会返回一个string值:
FirstName=Bill&LastName=Gates
$.param()
方法创建数组或对象的序列化表示。
- var obj = {a:1,b:2,c:3};
- var k = $.param(obj);
- alert(k); //输出a=1&b=2&c=3