$(this).serialize() -- 値を追加するには? 質問する

$(this).serialize() -- 値を追加するには? 質問する

現在、私は次のものを所有しています:

$.ajax({
    type: 'POST',
    url: this.action,
    data: $(this).serialize(),
});

これはうまく動作しますが、データに値を追加したいので、試してみました

$.ajax({
    type: 'POST',
    url: this.action,
    data: $(this).serialize() + '&=NonFormValue' + NonFormValue,
});

しかし、正しく投稿されませんでした。シリアル化文字列にアイテムを追加する方法について何かアイデアはありますか? これはフォーム固有ではないグローバル ページ変数です。

ベストアンサー1

matt b の回答は機能しますが、 を使用し.serializeArray()てフォーム データから配列を取得し、それを変更し、 を使用してjQuery.param()URL エンコードされたフォームに変換することもできます。このようにして、jQuery が追加データのシリアル化を処理します。

var data = $(this).serializeArray(); // convert form to array
data.push({name: "NonFormValue", value: NonFormValue});
$.ajax({
    type: 'POST',
    url: this.action,
    data: $.param(data),
});

おすすめ記事