๊ด€๋ฆฌ ๋ฉ”๋‰ด

bom's happy life

[Spring] JS๋กœ <form>ํƒœ๊ทธ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•ด์„œ ํ™œ์šฉํ•˜๊ธฐ ๋ณธ๋ฌธ

Deveolpment Study๐Ÿ—‚๏ธ/Spring Framework

[Spring] JS๋กœ <form>ํƒœ๊ทธ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•ด์„œ ํ™œ์šฉํ•˜๊ธฐ

bompeach 2023. 6. 5. 21:34

์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ๋•Œ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์ง€๋งŒ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ์—์„œ `form` ํƒœ๊ทธ๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜์—ฌ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์šฉํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ๋งค๋ฒˆ ์ฐพ์•„๋ณด๊ธฐ๋ณด๋‹ค ์ด์ฐธ์— ์ •๋ฆฌํ•ด๋‘๋ ค๊ณ  ํ•œ๋‹ค!
 
.
.
 
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ์—์„œ `form` ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์†์„ฑ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• : 

var form = document.createElement("form");
form.setAttribute("charset", "utf-8"); //์ธ์ฝ”๋”ฉ ๋ฐฉ์‹
form.setAttribute("method", "POST");  //๋ณด๋‚ด๋Š” ๋ฐฉ์‹ POST or GET
form.setAttribute("action", "/myInfo.do"); //๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ์ฃผ์†Œ

์œ„ ์ฝ”๋“œ์—์„œ๋Š” `form` ์š”์†Œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , `charset`, `method`, `action` ์†์„ฑ์„ ์„ค์ •ํ•œ๋‹ค. ์ด์ œ ์ƒ์„ฑํ•œ `form` ์— ํ•„์š”ํ•œ ์ž…๋ ฅ ํ•„๋“œ๋“ค์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

var myInfo = document.createElement("input");
myInfo.setAttribute("type", "hidden");
myInfo.setAttribute("name", "my_name");
myInfo.setAttribute("value", "${my_name}");
form.appendChild(myInfo);

// ํ•„์š”ํ•œ ์ž…๋ ฅ ํ•„๋“œ๋“ค ์ถ”๊ฐ€

์œ„ ์˜ˆ์ œ๋Š” `hidden` ์ž…๋ ฅ ํ•„๋“œ๋ฅผ ์ƒ์„ฑํ•ด์„œ `form` ์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ด์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ•„์š”ํ•œ ์ž…๋ ฅ ํ•„๋“œ๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  `form` ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž…๋ ฅ ํ•„๋“œ์˜ ์œ ํ˜•(type) ๊ณผ ์†์„ฑ(name, value ๋“ฑ) ์€ ์‹ค์ œ๋กœ ํ•„์š”ํ•œ ๊ฐ’์— ๋”ฐ๋ผ ์กฐ์ •ํ•˜๋ฉด ๋œ๋‹ค.

 

document.body.appendChild(form);
form.submit();

`form` ์„ HTML ๋ฌธ์„œ์— ์ถ”๊ฐ€ํ•œ ํ›„์—๋Š” `form.submit( )` ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ `form` ์„ ์„œ๋ฒ„๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
์œ„ ์ฝ”๋“œ๋Š” `form` ์„ ๋ฌธ์„œ์˜ `body` ์— ์ถ”๊ฐ€ํ•œ ๋‹ค์Œ `form.submit()` ์„ ํ˜ธ์ถœํ•˜์—ฌ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ์ฝ”๋“œ์ด๋‹ค.
 
 
.
.
 
 
์ •๋ฆฌ๋œ ์ฝ”๋“œ! 

var form = document.createElement("form");
form.setAttribute("charset", "utf-8");
form.setAttribute("method", "POST"); 
form.setAttribute("action", "/mom/reservationForm.do");

var rentInfo1 = document.createElement("input");
rentInfo1.setAttribute("type", "hidden");
rentInfo1.setAttribute("name", "placeNm");
rentInfo1.setAttribute("value", "${placeNm}");
form.appendChild(rentInfo1);

form.style.display = "none"; //๋ฐ์ดํ„ฐ๋งŒ ๋ณด๋‚ผ๋•Œ ํ™”๋ฉด์ƒ์—์„œ๋Š” ๊ฐ์ถ”๊ธฐ! 

document.body.appendChild(form);
form.submit();