ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ค์๊ณผ ๊ฐ์ด form ํ๊ทธ ๋ด์์ Input value ๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ ์ํด์ formData ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์๋ค.
์ดํ formData ์ธ์คํด์ค๋ฅผ ์ฝ๋ ์์์ ์ฐธ์กฐ ๋ฐ ์ฌ์ฉํ๊ธฐ ์ด์ ์ ์ฝ์ ์ฐฝ์์ ์ด๋ค ์ ๋ณด๊ฐ ์ถ๋ ฅ๋๋์ง ํ์ธํ๋ ค๊ณ ํ์ผ๋ formData์ ๋ํ ์ง์ ์ ์ธ ๋ฐ์ดํฐ ์ ๋ณด๊ฐ ์๋ FormData ๊ฐ์ฒด์ ๋ํ ์ ๋ณด๋ฅผ ๋ฐํํ ๋ฟ์ด์๋ค.
formData ๊ฐ์ฒด
The FormData interface provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using the XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to "multipart/form-data".
MDN์ ๋ฐ๋ฅด๋ฉด formData ๊ฐ์ฒด๋ ๋จ์ํ ๊ฐ์ฒด๊ฐ ์๋ XMLHttpRequest ์ ์ก์ ์ํด ์ค๊ณ๋ ํน์ํ ๊ฐ์ฒด ํํ์ด๋ค.
๋ฐ๋ผ์ ๋ฌธ์์ดํํ ์ ์๋ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ console.log๋ฅผ ํตํด ์ถ๋ ฅํ๊ฑฐ๋ ์ฝ๋ ์์์ ์ง์ ์ฌ์ฉํ ์ ์์๋ ๊ฒ์ด๋ค.
ํด๋น formData key์ value ์์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ป๊ธฐ ์ํด์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์๋ค.
1. formData.get() ๋ฉ์๋
let info = [formData.get('contact'), formData.get('delivery')];
2. formData.keys()/values() ๋ฉ์๋
for (let key of formData.keys()) {
console.log(key);
}
for (let value of formData.values()) {
console.log(value);
}
3. ์ธ์คํด์ค ์์ฑ ํ Array.from()๋ฅผ ๋ฉ์๋๋ฅผ ํตํด ๋ฐฐ์ดํ
const formRecords = Array.from(new FormData($formTag));
(...)
$currentItem.innerHTML = formRecords
.map((record) => `${formMap[record[0]]}: ${record[1]}`) //key๋ ๋ฌธ์์ด ํ์
์ผ๋ก ์ ์ฅ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด ๋ฆฌํฐ๋ด์ ํตํด ํ๋กํผํฐ ์ ๊ทผ
.join('<br />');
//๋ฐฐ์ดํ ๋ formData๋ ํด์ฌ์ ๊ฐ์ด key, value๋ก ์ด๋ฃจ์ด์ง ํ ์
//formMap = { contact: ์ฐ๋ฝ ์๋จ, delivery: ๋ฐฐ์ก ์๋จ }
'JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
rxjs tap operator๋ฅผ ํตํ side-effect (0) | 2021.08.03 |
---|---|
axios Intercept requests_API ์์ฒญ ์ฒ๋ฆฌ ๋์ UI ์์ ๋ณด์ฌ ์ฃผ๊ธฐ (0) | 2021.08.03 |
CustomEvent๋ก ํน์ ์ด๋ฒคํธ ๊ธฐ๋ฅ ๋ถ๋ฆฌ (0) | 2021.07.28 |
์คํฌ๋กค ์ค์ ์์น ๊ณ์ฐ_๋์ ๋ณด์ด์ง ์๋ ๋ฒ์ (0) | 2021.07.26 |
์ด๋ฒคํธ ํธ๋ค๋ฌ this ๋ฐ์ธ๋ฉ ๋ฌธ์ (0) | 2021.07.25 |