gpt4 book ai didi

javascript - 使用 javascript 在 Internet Explorer 中迭代 formData 对象

转载 作者:数据小太阳 更新时间:2023-10-29 04:52:03 25 4
gpt4 key购买 nike

正在使用表单 ID 创建一个 formData 对象并执行以下操作:

var formDataDetails = new FormData(document.getElementById("form_id"));
for (var entry of formDataDetails{
res[entry[0]] = entry[1];
}

我稍后会做 JSON stringify 和做 POST。

但是我最近发现'Internet Explorer' 还不支持for..of 循环。而且我认为使用 for..in 循环是不正确的,因为它用于遍历可枚举对象(而是循环遍历对象的属性)。

对于 Internet Explorer,我应该如何遍历 formData?

最佳答案

我发现,截至这篇文章,IE 仍然无法在 for..of 循环中通过 FormData 对象可靠地工作。因此,我的解决方案是在需要迭代集合时避免使用 FormData。如果您只是使用 FormData 发布表单数据,它在 IE 中运行良好。

如果您需要在发送之前迭代表单的值,您可以像我一样做——直接使用 form.elements 集合即可。

像这样:

export function form2Obj(f) {
var elemArray = f.elements;
var formObj = {};
for (var k in elemArray) {
var input = elemArray[k];
if (!input || !input.name || !input.value) continue;
formObj[input.name] = input.value;
// etc, need special handling for inputs of type radio
// checkbox, textarea, and select most likely
}
return formObj;

郑重声明,我正在使用 webpack 编译成 ES6。当我在开发模式下编译时,IE 可以处理 for..of 循环。当我在生产模式下编译时,IE 工作。

关于javascript - 使用 javascript 在 Internet Explorer 中迭代 formData 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45428004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com