web-dev-qa-db-ja.com

FormDataから値を削除する方法

ここappendファイルをFormDataに変換する方法です。

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

以下のようにすることは可能ですか?

     data[i].remove();???
 or  data[i] = file;??

dataから値を削除または変更する方法

14
talkhabi

FormDataオブジェクトにアイテムを追加する以外は何もできません。 the Spec を参照してください。ディクショナリ/オブジェクトを使用して、実際にオブジェクトを作成する前に、追加/変更するすべての値を格納することをお勧めします。

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]);
}
26
Michael Dunlap

私はこのスレッドが古いことを知っていますが、これを見つけました: https://developer.mozilla.org/en-US/docs/Web/API/FormData/delete

私はそれが助けることができると思います。 formData.delete(name)を使用して、 "name"キーを持つformDataのエントリを削除できます。

7
Vae