表單序列化

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

相關文章
相關標籤/搜索