web-dev-qa-db-ja.com

jQuery:serialize()フォームおよびその他のパラメーター

form要素( .serialize() メソッドでシリアル化)および他のパラメーターを単一のAJAXで送信することは可能ですか_リクエスト?

例:

$.ajax({
    type : 'POST',
    url : 'url',
    data : {
        $('#form').serialize(),
        par1 : 1,
        par2 : '2',
        par3: 232
    }
}

そうでない場合、他のパラメーターと一緒にフォームを送信する最良の方法は何ですか?

ありがとう

100
KenavR

serialize()は、フォームの値を有効なクエリ文字列に効果的に変換します。そのため、単純に文字列に追加できます。

$.ajax({
    type : 'POST',
    url : 'url',
    data : $('#form').serialize() + "&par1=1&par2=2&par3=232"
}
206
Rory McCrossan

または、パラメータをオブジェクト変数に保存する場合は、form.serialize()$.param(object)とともに使用できます。使用法は次のとおりです。

var data = form.serialize() + '&' + $.param(object)

詳細については、 http://api.jquery.com/jQuery.param を参照してください。

69
kliszaq

私は知らないが、上記のどれも私のために働いた、それから私はこれを使用し、それは働いた:

フォームのシリアル化された配列では、キーと値のペアとして保存されます

ここで新しい値をフォーム変数にプッシュし、この変数を直接渡すことができます。

var form = $('form.sigPad').serializeArray();
var uniquekey = {
      name: "uniquekey",
      value: $('#UniqueKey').val()
};
form.Push(uniquekey);
7
Rohit Arora

JQueryを使用して別のフォームのコンテンツを使用して補助フォームを作成し、それから他のパラメーターを追加して、ajax呼び出しでシリアル化するだけで済みます。

function createInput(name,value){
    return $('<input>').attr({
        name: name,
        value: value
    });
}
$form = $("<form></form>");
$form.append($("#your_form input").clone());
$form.append(createInput('input_name', 'input_value'));
$form.append(createInput('input_name_2', 'input_value_2'));
....

$.ajax({
    type : 'POST',
    url : 'url',
    data : $form.serialize()
}
0
Felixuko

フォームのシリアル化でデータを送信する場合は、これを試してください

var form= $("#formId");
$.ajax({
    type: form.attr('method'),
    url: form.attr('action'),
    data: form.serialize()+"&variable="+otherData,
    success: function (data) {
    var result=data;
    $('#result').attr("value",result);

    }
});
0
4302836