在提交表单时,我使用 jQuery 来收集包括文件在内的数据,并使用以下方法创建表单值的 FormData 对象:
var formData = new FormData($("form#formid")[0]);
但是我怎样才能添加另一个值,它是这个 FormData 对象的关键?
在提交表单时,我使用 jQuery 来收集包括文件在内的数据,并使用以下方法创建表单值的 FormData 对象:
var formData = new FormData($("form#formid")[0]);
但是我怎样才能添加另一个值,它是这个 FormData 对象的关键?
var formData = new FormData($("form#formid")[0]);
formData.append("key", "value")
您可以遍历表单中的所有字段并将它们添加到FormData
非常容易的方式:
var formData = new FormData();
$("form#edit-account").serializeArray().forEach(function(field) {
formData.append(field.name, field.value)
});
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);
$( '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();
});