JavaScript 循环将数据附加到 formData - 递增变量显示与 formData 中的每个循环相同

JavaScript loop appending data to formData - incremented variable showing the same with each loop in formData

我在 JavaScript 中有一个循环,我在其中将多个文件附加到 formData,以便可以将其上传到 API 调用。 对于每个文件,maxDiplayOrderHold 中的值比前一个文件高一个数。

我确认 maxDiplayOrderHold 值在使用 console.log 的每个循环迭代中增加 1。

每次附加到 formData 的值是第一次循环迭代的值。 下面是我的循环代码。

for (var i = 0; i < imageFile.length; i++){                      
                                      
   maxDiplayOrderHold++;
   formData.append("imageFile", imageFile[i]);       
   formData.append("reportId", reportIdHold);
   formData.append("DisplayOrder", maxDiplayOrderHold);                                                 
   console.log("current maxDiplayOrderHold value: ", maxDiplayOrderHold);
   formData.append("CreateUser_ID", userId);
   console.log("fromData DisplayOrder",formData.get('DisplayOrder'));  //this is returning the same number each time
            
   }

我不知道为什么当 maxDiplayOrderHold 值在每次循环迭代中增加时,formData 中的 DisplayOrder 显示相同的值。

.get 将获得第一个条目

将其移至循环之后,这样您只需设置一次值

formData.append("DisplayOrder", imageFile.length);           

您可以getAll获取所有 DisplayOrder 条目

const formData = new FormData(document.querySelector("form"))

const imageFile = new Array(4);

for (var i = 0; i < imageFile.length; i++){                      
   formData.append("DisplayOrder", i);                                                 
   console.log("fromData DisplayOrder",formData.get('DisplayOrder'));  //this is returning the same number each time
}
console.log(formData.getAll("DisplayOrder"))
<form></form>