Jquery 从 FormData 对象中删除值

新手上路,请多包涵

如何从具有相同名称的 FormData 对象中删除值?我有两个输入文件的 HTML 表单。

 <input id="human" type="file" name="file[]" class="docfiles" />
<input id="animal" type="file" name="file[]" class="docfiles" />

例如,我想删除文件 1 - id 为“human”。知道怎么做吗?

这是我的演示 jsfiddle

原文由 didsun 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 718
2 个回答

操作文件数组并重新添加元素减去需要删除的元素。

 var files = formData.getAll("file[]");
files.splice($("[type='file']").index($("#animal")), 1);
formData.delete("file[]");
$.each(files, function(i, v) {
    formData.append("file[]", v);
});

演示 https://jsfiddle.net/nnte528L/

原文由 james_bond 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以通过将输入对象的值属性设置为空字符串来删除整个文件列表。

 document.getElementById('human').value = "";

如果您使用的是 FormData,您还可以

ForEach(var key in formData.keys()){
  formData.delete(key);
}

这将遍历 formData 中的所有键并删除所有键值对。

原文由 Riya 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题