2011-10-23 9 views
3

js/jqの実際のGET/POST操作の前に、フォーム提出時にブラウザがコンパイルするデータの配列にアクセスする方法はありますか?私はAJAXを使用して、ますます自分自身を見つけることだフォームキー+値のペアjqueryプラグイン

$("form").submit(function(event){ 
event.preventDefault(); 
//give me the data array here 
}); 

- 私は、event.preventDefault()は、$(this)(フォーム)に含まれるすべての要素の名前/値のペアを取得し、その後、$.post()を介してサーバにプッシュ呼び出します。データ配列を手作業で組み立てるのは痛みになります。

$data = $("form").gimmeData(); 

すべての主要なHTML入力要素をサポートしているようなものがありますか?私はこの方法で間違って近づいていますか?ありがとう!

+0

回答ありがとうございます:) –

答えて

5

はい、jQueryには、あなたが求めているものとほとんど同じ "serializeArray()"メソッドがあります。

それは次のように配列を返す

:名前がフォーム内で複数回表示されます

var arr = $('#form_id').serializeArray(), obj = {}; 
for (var i = 0; i < arr.length; ++i) 
    obj[arr[i].name] = arr[i].value; 

場合は、その「値」:あなたはこのようなオブジェクトにそれを回すことができる

[ { name: "something", value: "whatever" }, { name: "another_one", value: 22 } ] 

別々のフィールドからの値の配列になります。

3
$data = $("form").serialize(); // will return query string 

$data = $("form").serializeArray(); // will return array 

Details here

0

あなたはPOSTリクエストに渡された配列を取得するために$('#form').serializeArray()方法を使用することができます。

これで、正常に受け取ったオブジェクトを編集できます。

関連する問題