2017-01-22 5 views
3

Wie kann ich Wert aus FormData-Objekt mit demselben Namen löschen? Ich habe HTML-Formular mit zwei Eingabedateien.Jquery löschen Wert aus FormData-Objekt

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

Zum Beispiel möchte ich Datei 1 löschen - mit ID "Mensch". Irgendeine Idee, wie man das macht?

Hier meine Demo jsfiddle.

Antwort

5

Manipulieren Sie das Array von Dateien und fügen Sie die Elemente wieder hinzu, bis auf das, das entfernt werden muss.

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

Demo https://jsfiddle.net/nnte528L/

0

wenn Sie jQuery verwenden Sie

$("#human").remove(); 

verwenden können, wenn Sie Vanille JS verwenden können Sie

var human = document.getElementById('human'); 
human.parentNode.removeChild(human); 
+0

Vielen Dank für Antwort, aber das ist nicht, was ich will. Ich versuche das [link] (https://developer.mozilla.org/en-US/docs/Web/API/FormData/delete) aber "file" ist array. – didsun

0

Folgendes tun können Sie die gesamte Dateiliste löschen, indem Sie den Wert einstellen Eigenschaft des Eingabeobjekts auf eine leere Zeichenfolge.

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

Wenn Sie Formdata verwenden, können Sie auch

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

haben diese durch alle Schlüssel in Formdata laufen wird und alle Schlüssel-Wert-Paare löschen.

Verwandte Themen