如何将数组值添加到新FormData?

在表单提交上我使用jQuery来收集包含文件的数据并使用以下方法创建表单值的FormData对象:

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

但是如何添加其他值并且它是此FormData对象的关键?

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

请参阅https://developer.mozilla.org/en/XMLHttpRequest/FormData

您可以迭代表单中的所有字段,并以这种方式非常容易地将它们添加到FormData

 var formData = new FormData(); $("form#edit-account").serializeArray().forEach(function(field) { formData.append(field.name, field.value) });​ 
 $( '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(); 

});

 var data = new FormData(), fields = $("#myForm").serializeArray(); $.each( fields, function( i, field ) { data.append(field.name, field.value); }); 

您还可以使用FormData.set() 。

FormData.set和append()之间的区别在于,如果指定的键已经存在,FormData.set将用新的值覆盖所有现有值,而append()会将新值附加到现有值集的末尾。

语法

 formData.set(name, value);