1.serialize()方法html
格式:var data = $("form").serialize();ajax
功能:將表單內容序列化成一個字符串。json
這樣在ajax提交表單數據時,就不用一一列舉出每個參數。只需將data參數設置爲 $("form").serialize() 便可。數組
與JQuery中其餘方法同樣,serialize()方法也是做用於一個JQuery對象,它可以將DOM元素內容序列化爲字符串,用於ajax請求。經過使用serialize()方法,能夠提交本頁面的全部域,代碼以下:
$("#send").click(function(){
$.get("get1.jsp", $("#form1").serialize(), function(data, textStatus)
$("#resText").html(data);
});
});
當單擊「提交」按鈕後,全部屬於form1的表單元素都能提交到後臺,即便在表單中再增長字段,腳本仍然可以使用,而且不須要作其餘多餘工做。jsp
用字符串方式時,須要注意對字符編碼(中文問題),若是不但願編碼帶來麻煩,可使用serialize()方法,它會自動編
ui
由於serialize()方法做用於JQuery對象,因此不光只有表單能使用它,其餘選擇器選取的元素也都能使用它,如如下JQuery代碼:編碼
$(":checkbox,:radio").serialize();orm
把複選框和單選框的值序列化爲字符串形式,只會將選中的值序列化。htm
在JQuery中還有一個與serialize()相似的方法--serializeArray(),該方法不是返回字符串,而是將DOM元素序列化後,返回JSON格式的數據。JQuery代碼以下:對象
var fields = $(":checkbox,:radio").serializeArray();
console.log(fields); //用Firebug輸出
$.param()方法是serialize()方法的核心,用來對一個數組或對象按照key/value進行序列化。
好比將一個普通的對象序列化:
var obj = {a:1,b:2,c:3};
var k = $.param(obj);
alert(k); //輸出a=1&b=2&c=3
2.serializeArray()方法
格式:var jsonData = $("form").serializeArray();
功能:將頁面表單序列化成一個JSON結構的對象。注意不是JSON字符串。
好比,[{"name":"lihui", "age":"20"},{...}] 獲取數據爲 jsonData[0].name