如何组合两个javascript FormData对象
我需要组合两个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);
当我使用$.extend
或者使用serialize()
来组合没有文件输入的表单时,它不起作用。 知道怎么做吗?
你不能。 遗憾的是, FormData
不可枚举。
但是,正如您所说,只有一个表单包含文件输入。 然后应该可以在另一个上使用serializeArray
并手动append
到数据:
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
我是这样做的:
let formData = new FormData($("#f_articulos")[0]); let formDataPrecios = new FormData($("#f_listado_precios")[0]); for (var pair of formDataPrecios.entries()) { formData.append(pair[0], pair[1]); }
您可以serialize
表单merge
它们merge
到一个数组中:
var fd1 = $(document.forms['form-id-1']).serializeArray(); var fd2 = $(document.forms['form-id-2']).serializeArray(); var fd = $.merge(fd1, fd2);
单击以查看Jquery文档SerializeArray页面
单击以查看Jquery文档合并页面