如何从具有相同名称的FormData对象中删除值? 我有两个输入文件的HTML表单。
<input id="human" type="file" name="file[]" class="docfiles" />
<input id="animal" type="file" name="file[]" class="docfiles" />
例如,我想删除文件1 - id为“human”。知道怎么做吗?
这是我的演示jsfiddle。
答案 0 :(得分:5)
操纵文件数组并重新添加元素减去需要删除的元素。
var files = formData.getAll("file[]");
files.splice($("[type='file']").index($("#animal")), 1);
formData.delete("file[]");
$.each(files, function(i, v) {
formData.append("file[]", v);
});
答案 1 :(得分:0)
如果你正在使用jQuery,你可以使用
$("#human").remove();
如果您正在使用vanilla JS,则可以执行以下操作
var human = document.getElementById('human');
human.parentNode.removeChild(human);
答案 2 :(得分:0)
您可以通过将输入对象的value属性设置为空字符串来删除整个文件列表。
document.getElementById('human').value = "";
如果您使用的是FormData,则还可以
ForEach(var key in formData.keys()){
formData.delete(key);
}
这将遍历formData中的所有键并删除所有键值对。