入力フィールドが多数あるフォームがあります。
jQuery を使用してフォーム送信イベントをキャッチすると、そのフォームのすべての入力フィールドを連想配列で取得することは可能ですか?
ベストアンサー1
$('#myForm').submit(function() {
// get all the inputs into an array.
var $inputs = $('#myForm :input');
// not sure if you wanted this, but I thought I'd add it.
// get an associative array of just the values.
var values = {};
$inputs.each(function() {
values[this.name] = $(this).val();
});
});
Simon_Weaverさんのヒントのおかげで、別の方法でも実現できます。serializeArray
:
var values = {};
$.each($('#myForm').serializeArray(), function(i, field) {
values[field.name] = field.value;
});
このスニペットは要素では失敗することに注意してください<select multiple>
。
どうやら、新しい HTML 5 フォーム入力serializeArray
jQueryバージョン1.3では動作しません。バージョン1.4以降では動作します。