在表单提交时,我使用jQuery来收集数据,其中包括文件,并使用以下方式创建包含表单值的FormData对象:
var formData = new FormData($("form#formid")[0]);
但是我该如何向这个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)
});
你也可以使用FormData.set()。
FormData.set和append()的区别在于,如果指定的键已经存在,FormData.set将用新值覆盖所有现有的值,而append()将把新值添加到现有值集的末尾。
语法:
formData.set(name, value);
var data = new FormData(),
fields = $("#myForm").serializeArray();
$.each( fields, function( i, field ) {
data.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();
});
serialize()
无法处理文件? - Dan