formのシリアライズ時に要素を追加

formの内容をシリアライズして、AJAX通信を投げることは良くあるが、
その際にパラメータを追加する方法。

var data = $(form).serializeArray();
data.push({name: 'username', value: 'this is username'});
  • 他 serializeObjectというメソッドを追加する方法がある
$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};