如何合并两个JavaScript FormData对象

u54r

我需要组合两个FormData对象,并使用XMLHttpRequest发布它们。其中一种形式包含文件输入。

var formData = new FormData(document.forms.namedItem('form-ship'));
var poData = new FormData(document.forms.namedItem('po-form'));

// Combine them
var fData = $.extend(true, formData, poData);

当我使用$.extendserialize()合并没有文件输入的表单时,它不起作用。任何想法如何做到这一点?

贝吉

你不能。FormData不幸的是无法枚举。

但是,正如您所说,您的表单中只有一个确实包含文件输入。然后应该可以彼此使用serializeArrayappend手动使用数据:

var formData = new FormData(document.forms['form-ship']); // with the file input
var poData = jQuery(document.forms['po-form']).serializeArray();
for (var i=0; i<poData.length; i++)
    formData.append(poData[i].name, poData[i].value);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章