表單序列化


1.serialize()方法

  格式:var data = $("form").serialize();

  功能:將表單內容序列化成一個字符串。

  這樣在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的表單元素都能提交到后台,即使在表單中再增加字段,腳本仍然能夠使用,並且不需要做其他多余工作。

用字符串方式時,需要注意對字符編碼(中文問題),如果不希望編碼帶來麻煩,可以使用serialize()方法,它會自動編

因為serialize()方法作用於JQuery對象,所以不光只有表單能使用它,其他選擇器選取的元素也都能使用它,如以下JQuery代碼:

$(":checkbox,:radio").serialize();

把復選框和單選框的值序列化為字符串形式,只會將選中的值序列化。

在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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM