不能在iOS上使用FormData,但在包括Safari工作在内的所有桌面浏览器中都使用。
$("#form").on('submit', function(e){
let formData = new FormData(this);
sendwithAjax(formData);
});
答案 0 :(得分:0)
由于这个原因,我在FormData上遇到了一些问题:
$("#form").on('submit', function(e){
let formData = new FormData(this);
sendwithAjax(formData);
});
大多数浏览器都支持此功能。变量'this'或'e.currentTarget'对应于包含所有输入的表单。所以我们只是做一个表单的formData。
嗯,谈到移动,iOS,更具体的事情并不顺利。 XHR请求刚刚崩溃。
这就是我修复的方法:
var formData = new FormData();
for (var i = 0; i < form.length; i++) {
var element = form[i];
if(element.type === "file" && element.files.length > 0){
formData.append(element.name, element.files[0], element.files[0].name);
} else if(element.type === "checkbox" && element.checked){
formData.append(element.name, element.value);
} else if(element.type !== "checkbox"){
formData.append(element.name, element.value);
}
}
sendWithAjax(formData)
问题是FormData实例中的'form',所以我手动放置了表单的每个元素并且它有效。