본문 바로가기
Engineering WIKI/Js

[JS] FormData

by wonos 2020. 11. 29.

FormData 객체는 window.FormData에 위치합니다.

var formData = new FormData();
formData.append('name', 'zerocho');
formData.append('item', 'orange');
formData.append('item', 'melon');

자, new FormData()로 새로운 객체를 생성해주시고요. append 메소드로 키-값 형식으로 하나씩 추가해주시면 되겠습니다.

같은 키를 가진 값을 여러 개 넣을 수도 있습니다. 덮어씌워지지 않고 추가됩니다.

참고로 값은 문자열로 자동 변환됩니다. 숫자를 넣어도 문자열이 되고, 배열을 넣어도 콤마로 구분한 문자열이 됩니다.

객체는 넣으면 무시됩니다. 이 점을 유의하세요!

 

var formData = new FormData(document.getElementById('폼 아이디'));

이렇게 선택하면 알아서 폼의 내용들의 formData 객체 안에 들어갑니다. 편리하죠?

append로 넣을 수만 있는 게 아니라 내용물을 확인할 수도 있습니다. 위의 코드와 이어집니다.

 

formData.has('item'); // true
formData.has('money'); // false
formData.get('item'); // orange
formData.getAll('item'); // ['orange', 'melon']

formData에 이제 값을 지워봅시다. delete 메소드를 사용하면 됩니다.

append와 비슷한 set 메소드도 있습니다. set과 append의 차이점은 set도 추가를 해주기는 하지만, 기존 키가 있으면 그 값을 모두 덮어씌워버립니다. 위의 item에 대한 값이 orange와 melon이었는데 apple을 set하는 순간 item 값이 apple 하나로 덮어씌워졌습니다.

이상으로 FormData의 API에 대해 알아봤습니다. FormData에 이미지를 담고 싶으면

formData.append('img', document.getElementById('파일 인풋').files[0])

 

'Engineering WIKI > Js' 카테고리의 다른 글

[JS] Ajax 중복호출 방지 (코드 포함)  (0) 2022.09.17
[JS] 자바스크립트 ES6  (0) 2021.06.15
[JS] formData를 console.log 출력  (0) 2020.11.29
[Js] this 개념 및 활용  (0) 2020.04.26
[Js] IE Default Error  (0) 2020.04.05
[JS] select의 선택된 값 구하기  (0) 2020.04.05
[JS] array 중복 제거  (0) 2019.09.04
[Jquery] HTML 태그 바꾸기  (0) 2019.08.17