フォームの値を連想配列にする、そしてそのまま $.ajax()
JavaScript がなくても動く普通のフォームを非同期にするとき、JavaScript でごりごりリクエストデータを作るのはかっこ悪いので、フォームからデータを取ってきて連想配列で返すコード書いた。戻り値はそのまま $.ajax, $.get, $.post で使用可能。
function getFormValues(form) { var data = {}; $(form).find("input, select, textarea").each(function() { var el = $(this); var name = el.attr("name"); var value = el.val(); if (typeof name === "undefined" || el.attr("disabled") || this.tagName.toLowerCase() === "input" && el.attr("type") === "checkbox" && !el.attr("checked")) { return; } if (name in data) { if (data[name] instanceof Array) { data[name].push(value); } else { data[name] = [data[name], value]; } } else { data[name] = value; } }); return data; }