多くの入力フィールドを持つフォームがあります。
jQueryでsubmitフォームイベントをキャッチしたときに、そのフォームのすべての入力フィールドを連想配列で取得することは可能でしょうか?
$('#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>
要素では失敗します。
jQueryバージョン1.3では、new HTML 5 form inputsが serializeArray
で動作しないようです。バージョン1.4+では動作します。