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

时间:2012-06-26 13:34:04

标签: javascript jquery

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

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

但是如何添加另一个值并且它是此FormData对象的关键?

5 个答案:

答案 0 :(得分:22)

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分: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();

});

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

您也可以使用FormData.set()

  

FormData.set和append()之间的区别在于   指定的密钥已经存在,FormData.set将覆盖所有现有的   使用新值的值,而append()将追加新值   到现有价值观的末尾。

<强>语法

formData.set(name, value);