Anu*_*lan 7 javascript internet-explorer json form-data
我正在使用表单id创建一个formData对象,并且正在执行以下操作:
var formDataDetails = new FormData(document.getElementById("form_id"));
for (var entry of formDataDetails{
res[entry[0]] = entry[1];
}
Run Code Online (Sandbox Code Playgroud)
我以后做JSON stringify并做POST.
但我最近发现for..of
,'Internet Explorer'中不支持循环.我相信使用for..in
循环是不正确的,因为它用于迭代可枚举的对象(循环通过对象的属性).
对于Internet Explorer,我应该如何重复使用formData?
我发现,截至这篇文章,IE 仍然无法通过 FormData 对象在 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;
Run Code Online (Sandbox Code Playgroud)
}
作为记录,我使用 webpack 编译为 ES6。当我在开发模式下编译时,IE 可以处理 for..of 循环。当我在生产模式下编译时,IE不起作用。
归档时间: |
|
查看次数: |
805 次 |
最近记录: |