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