11

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

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

但是我怎样才能添加另一个值,它是这个 FormData 对象的关键?

4

5 回答 5

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

https://developer.mozilla.org/en/XMLHttpRequest/FormData

于 2012-06-26T13:39:23.107 回答
2

您可以遍历表单中的所有字段并将它们添加到FormData非常容易的方式:

var formData = new FormData();
$("form#edit-account").serializeArray().forEach(function(field) {
  formData.append(field.name, field.value)
});​
于 2012-06-26T13:43:41.760 回答
1
var data = new FormData(),
    fields = $("#myForm").serializeArray();

$.each( fields, function( i, field ) {
    data.append(field.name, field.value);
});
于 2016-05-06T10:24:22.923 回答
1

您也可以使用FormData.set()

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

语法

formData.set(name, value);
于 2016-07-28T08:30:47.963 回答
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();

});

于 2014-10-28T12:59:24.413 回答