如何从FormData中删除值

tal*_*abi 13 javascript forms ajax jquery jquery-data

是一种append提交方式FormData:

  var data = new FormData();
  jQuery.each($('#file')[0].files, function(i, file) {
          data.append('file-'+i, file);
  });
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?

     data[i].remove();???
 or  data[i] = file;??
Run Code Online (Sandbox Code Playgroud)

如何iIcan从中删除或修改值 data

Mic*_*lap 24

除了将项目附加到FormData对象之外,您不能执行任何操作.参见规格.如果在实际构造对象之前使用字典/对象来存储要添加/修改的所有值,那会更好.

var data = {};
jQuery.each($('#file')[0].files, function(i, file) {
  data['file-'+i] = file;
});

//modify the object however you want to here

var formData = new FormData();
for (var key in data) {
  formData.append(key, data[key]);
}
Run Code Online (Sandbox Code Playgroud)

  • 七年后,这不再是真的,[`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData) 有一个 [`delete`](https://developer.mozilla.org/en-US/docs/Web/API/FormData) /developer.mozilla.org/en-US/docs/Web/API/FormData/delete) 现在方法。请参阅页面其他位置的[此答案](/sf/answers/2839273671/)。 (2认同)

Vae*_*Vae 5

我知道这个线程很旧,但是我发现了这个:https : //developer.mozilla.org/en-US/docs/Web/API/FormData/delete

我可以帮助您。您可以使用formData.delete(name)“名称”键删除formData的条目。

  • 现在相当可以接受的兼容性。这应该是公认的答案。 (2认同)