2012-06-26 22 views
9

は、私はファイルを含むデータを収集するためにjQueryを使用し、使用してフォームの値のいるFormDataオブジェクトを作成しています:新しいFormDataに配列値を追加する方法は?フォームの送信に

var formData = new FormData($("form#formid")[0]); 

をどのように私は別の値を追加し、それがこれにキーのオブジェクトFORMDATAことができますか?

+0

@Esailijaは、私は 'シリアル化()'ファイルを扱うことができるとは思わなかった、FILESは、AJAXを投稿するなど、フォームの内容を取得する必要がありますか? – Dan

+0

あなたは "配列"と言って私は混乱しました。私はあなたが求めていると思うように編集しました。 – Esailija

答えて

22
var formData = new FormData($("form#formid")[0]); 
formData.append("key", "value") 

あなたは、フォーム内のすべてのフィールドを反復処理し、非常に簡単にFormDataに、このようにそれらを追加することができますhttps://developer.mozilla.org/en/XMLHttpRequest/FormData

2

を参照してください)

var formData = new FormData(); 
$("form#edit-account").serializeArray().forEach(function(field) { 
    formData.append(field.name, field.value) 
});​ 
0
$('form').submit(function (e) { 
var data; 

data = new FormData(); 
data.append('file', $('#file')[0].files[0]); 

$.ajax({ 
    url: 'http://hacheck.tel.fer.hr/xml.pl', 
    data: data, 
    processData: false, 
    type: 'POST', 
    success: function (data) { 
     alert(data); 
    } 
}); 

e.preventDefault(); 

を};

0
var data = new FormData(), 
    fields = $("#myForm").serializeArray(); 

$.each(fields, function(i, field) { 
    data.append(field.name, field.value); 
}); 
0

FormData.set()も使用できます。

FormData.set及び追加()との差が 指定されたキーが既に存在する場合、FormData.set)は、一方(追加、新しいものと既存のすべての 値を上書きする新しい値を追加することである 既存の値セットの最後に追加します。

構文

formData.set(name, value); 
関連する問題