ホームページ > 記事 > ウェブフロントエンド > JQuery_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() メソッドの中核であり、キー/値に従って配列またはオブジェクトをシリアル化するために使用されます。
たとえば、通常のオブジェクトをシリアル化します。
var obj = {a:1,b:2,c:3}; var k = $.param(obj); alert(k); //输出a=1&b=2&c=3