1、serialize()方法php
作项目的过程当中,表单是必不可少的,常常用来提供数据,例如注册、登陆等。常规的方法是使表单提交到另外一个页面,整个浏览器都会被刷新,而使用ajax技术则可以异步地提交表单,并将服务器返回的数据显示在当前页面中。
html
表单的HTML代码以下:
jquery
<form id="form1" action="#"> <p>评论:</p> <p>姓名:<input type='text' name="username" id="username" /></p> <p>内容:<textarea name="content" id="content" rows="2" cols="20"></textarea></p> <p><input type="button" id="send" value="提交" /></p> </form>
为了获取姓名和内容,必须将字段的值逐个添加到data参数中:ajax
$("#send").click(function(){ $.get("get.php",{ username:$("#username").val(), content:$("#content").val() }),function(data,textStatus){ $("#id").thml(data); //将返回的数据添加到页面上 }); })
这种方式在只有少许字段的表单中,勉强还可使用,但若是表单元素愈来愈复杂,使用这种方式在增大工做量的同时页使表单缺少弹性。jquery为这一经常使用的操做提供了一个简化的方法——serialize()。与jquery中其余方法同样,serialize()方法也是做用域一个jquery对象,它可以将DON元素内容序列化为字符串,用于ajax请求。经过使用serialize()方法,能够把刚才的jquery代码改成以下:浏览器
$("#send").click(function(){ $.get("get.php",$("#form1").serialize(),function(data,textStatus){ $("#id").html(data); }) })
即便在表单中再增长字段,脚本仍然可以使用,而且不须要作其余多余工做。由于serialize()方法做用于jquery对象,因此不光只有表单可以使用它,其余选择器选取的元素也可以使用它:服务器
$(":checkbox,:radio").serialize();异步
把复选框和单选框的值序列化为字符串形式,只会将选中的值序列化。函数
2、serializeArray()方法code
该方法不是返回字符串,而是将DOM序列化后,返回JSON格式的数据。既然是一个对象,那么就可使用$.each()函数对数据进行迭代输出。orm
3、$.param()方法
它是serialize()方法的核心,用来对一个数据或对象按照key/value进行序列化。如:
var obj={a:1,b:2,c:3} var k=$.param(obj); alert(k);//输出a=1&b=2&c=3