1. 程式人生 > >JQuery中serialize()、serializeArray()和param()方法

JQuery中serialize()、serializeArray()和param()方法

下面是伺服器端的jsp程式碼:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
  request.setCharacterEncoding("UTF-8");
  String username = request.getParameter("username");
  String content = request.getParameter("content");
  out.println("<div class='comment'><h6> "+username+" :</h6><p class='para'> "+content+"

               </p></div>");
%>

與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




相關推薦

JQueryserialize()serializeArray()param()方法

下面是伺服器端的jsp程式碼: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% request.setCharacterEncoding("UTF-8");

jquery使元素顯示隱藏方法之間的區別

第一個 設置 不可見 效果 三種 透明 元素 實現 使用 在實際的項目開發中,要使一個元素隱藏的方法有很多,比如css的多種屬性和jquery的多種方法,雖然他們的作用都是使元素不可見,但是各個方法實現的原理是不一樣的。下面主要介紹jquery各個元素隱藏方法之間的區別。

jstoLocalString()toString()valueOf()方法

布爾 locals body 值類型 屬於 計算 函數 pos 使用 所有的對象都具有toLocaleString()、toString()和valueOf()方法,toString() 1、Array.toString():將數組轉換成一個字符串,並且返回這個字符串。描述

jQuery$.get()$.post()$.ajax()

nag post 這就是 也有 定義 消息 ram 結果 通用 jQuery.get()方法: $.get(url,data,success(response,status,xhr),dataType) 該函數是簡寫的 Ajax 函數,等價於: [javasc

jQuerywrapwrapAllwrapInner用法以及區別

wrap、wrapAll和wrapInner都是包裹節點,但是在使用的時候總是容易混淆,不太明白具體的區別。簡單的來說;wrap(): 將所有匹配元素單獨包裹起來wrapAll(): 將所有匹配元素一

內容包裝:jQuerywrapwrapAllwrapInner用法以及區別

wrap,   使用函式來規定在每個被選元素周圍包裹的內容。 <ul>   <li title='蘋果'>蘋果</li>   <li title='橘子'>橘子</li>   <li title='菠

jQuerybindlivedelegate的區別

DOM樹 首先,視覺化一個HMTL文件的DOM樹是很有幫助的。一個簡單的HTML頁面看起來就像是這個樣子: 事件冒泡(又稱事件傳播) 當我們點選一個連結時,其觸發了連結元素的單擊事件,該事件則引發任何我們已繫結到該元素的單擊事件上的函

JavaIteratorforEachforEach()方法遍歷的效率

程式碼如下: package Common; import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * @Description 探究Iterator、

jqueryappendprepend, beforeafter方法的區別(一)

mod serve com oos 兄弟節點 sha pos 插入 5% 原文:http://blog.csdn.net/woosido123/article/details/64439490 在 jquery中append() 與 prepend()是在元素內插

jqueryappendprepend, beforeafter方法的區別(二)

1.append()與after() 這兩個都是在元素的後面插入內容,不同的是前者是在元素內部插入(作為該元素的子元素),後者是在元素外部插入(作為該元素的兄弟元素);但是這裡我要講的是,當用表單驗證中用到這兩個方法時的區別:append()比較正常;而after()則會沒

Jqueryhtml()text()val()的使用區別

center () .text div 使用 avi innerhtml mar font jquery中獲取對象內容的方法主要有3種,分別是html()、text()、val()。 obj.html():獲取對象包裹的所有html內容,相當於innerHTML。

python@staticmethod@classmethod實例方法

dir pri cep ear 代碼 應用 can 打印 靜態 1.形式上的異同點: 在形式上,Python中:實例方法必須有self,類方法用@classmethod裝飾必須有cls,靜態方法用@staticmethod裝飾不必加cls或self,如下代碼所示: 1

jquery 阻止預設事件事件冒泡的方法

 1.在事件的處理中,可以阻止預設事件和冒泡事件。return false $("li").on('click',function(){ return false; })  2.在事件的處理中,可以阻止預設事件但是允許冒泡事件的發生。 e.preventDefault

pythonhasattrgetattrsetattr的使用方法

hasattr(object, name)判斷一個物件裡面是否有name屬性或者name方法,返回BOOL值,有name特性返回True, 否則返回False。需要注意的是name要用括號括起來 1 >>> class test(): 2 ...

JS為什麼會存在escapeencodeURIencodeURIComponent方法

1.為什麼需要以上三個方法?    當我們瀏覽網頁的時候看,會在瀏覽器的位址列輸入相應的URL地址,然而對於URL中的可以出現的字元是有要求的。       對於URL中的可以出現的字元要求可詳見RFC 1738,具體為以下內容: Thus, only alphan

Jquery.bind().live().delegate().on()之間的區別詳解

簡介 最近了解到很多網頁開發者對jquery中的 .bind() .live() .delegate() 和 .on() 方法存在很多的疑惑。這些疑惑通常是關於它們之間真正的區別是什麼啊,什麼時候該使用它們啊。下面本文將給大家詳細介紹這四個方法之間的區別,分別對每個方法都進

C#二進位制十進位制十六進位制互相轉換的方法

二進位制在C#中無法直接表示,我們一般用0和1的字串來表示一個數的二進位制形式。比如4的二進位制為“100”。下面介紹C#裡面用於進位制轉換的方法。 十進位制轉換為二進位制(int-->stri

jsjquery建立標籤新增屬性的方法

js方式建立標籤及新增屬性 <script>     var tr = document.getElementById('tr_id1') //根據id屬性獲取tr標籤     var t

js的call()方法apply()bind()方法的區別以及使用場景

在js中,所有的函式再被呼叫的時候都會預設傳入兩個引數,一個是this,還有一個是arguments。在預設情況下this都是指當前的呼叫函式的物件。但是有時候我們需要改變this的指向,也就是說使函式可以被其他物件來呼叫,那麼我們應該怎樣做呢?這時候我們就可以使用call,apply和bi

Java執行緒sleep()wait()notify()notifyAll()yield()join()等方法的用法區別

Java執行緒中sleep()、wait()和notify()和notifyAll()、suspend和resume()、yield()、join()、interrupt()的用法和區別從作業系統的角度講,os會維護一個ready queue(就緒的執行緒佇列)。並且在某一