2017-01-22 1 views
3

같은 이름의 FormData 객체에서 값을 어떻게 삭제할 수 있습니까? 두 개의 입력 파일이있는 HTML 양식이 있습니다.FormData 객체에서 Jquery 값을 삭제합니다.

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

예를 들어, id가 "human"인 파일 1을 삭제하고 싶습니다. 어떤 생각을 어떻게 할 것인가?

여기 내 데모 jsfiddle입니다.

답변

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); 
}); 

데모 답변 https://jsfiddle.net/nnte528L/

0

당신이 jQuery를 사용하는 경우 당신은 바닐라 JS 당신이

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

감사합니다, 그러나 이것은 내가 원하는 것이 아니다. 이 [link] (https://developer.mozilla.org/en-US/docs/Web/API/FormData/delete)를 시도하지만 "file"은 배열입니다. – didsun

0

다음은 값을 설정하여 전체 파일 목록을 삭제할 수 있습니다 할 수있는 사용하는 경우

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

을 사용할 수 있습니다 속성을 빈 문자열로 변환합니다. 당신이 FormData를 사용하는 경우

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

, 당신은 또한

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

이 formData에서 모든 키를 반복하고 모든 키 값 쌍을 삭제를 할 수 있습니다.

관련 문제