๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“š FrontEnd -Study/HTML, CSS

form

by ChaeLOTUS 2022. 7. 28.
728x90

forn์€ ์•Œ๊ฒŒ ๋ชจ๋ฅด๊ฒŒ ์›น์—์„œ ์‚ฌ์šฉ์ด ๋งŽ์ด ๋œ๋‹ค.

์‚ฌ์šฉ์ž์˜ ์˜๊ฒฌ์ด๋‚˜ ์ •๋ณด๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด ์ž…๋ ฅํ•  ํฐ ํ‹€์„ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

form์€ ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ์„œ๋ฒ„๋กœ ์ „์†กํ•œ๋‹ค. ์ „์†กํ•œ ๋ฐ์ดํ„ฐ๋Š” ์›น ์„œ๋ฒ„๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ณ , ๊ฒฐ๊ณผ์— ๋”ฐ๋ฅธ ๋˜ ๋‹ค๋ฅธ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

 

1. from ํƒœ๊ทธ ๋™์ž‘๋ฐฉ๋ฒ•

1. ํผ์ด ์žˆ๋Š” ์›น ํŽ˜์ด์ง€ ๋ฐฉ๋ถ„

2. ํผ ๋‚ด์šฉ์„ ์ž…๋ ฅ

3. ํผ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์›น ์„œ๋ฒ„๋กœ ๋ณด๋ƒ„.

4. ์›น ์„œ๋ฒ„๋Š” ๋ฐ›์€ ํผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์›น ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋„˜๊ธด๋‹ค.

5. ์›น ํ”„๋กœ๊ทธ๋žจ์€ ํผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.

6. ์ฒ˜๋ฆฌ๊ฒฐ๊ณผ์— ๋”ฐ๋ฅธ ์ƒˆ๋กœ์šด html ํŽ˜์ด์ง€๋ฅผ ์›น ์„œ๋ฒ„์— ๋ณด๋‚ธ๋‹ค.

7. ์›น ์„œ๋ฒ„๋Š” ๋ฐ›์€ html ํŽ˜์ด์ง€๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ๋ณด๋‚ธ๋‹ค.

8. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฐ›์€ html ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

 

์ถœ์ฒ˜ : https://www.nextree.co.kr/p8428/

2. ํผ ํƒœ๊ทธ ์†์„ฑ

โ€‹

ํผ ํƒœ๊ทธ ์†์„ฑ์—๋Š” name, action, method, target ๋“ฑ์ด ์žˆ๋‹ค. ํผ ์†์„ฑ์„ ์ด์šฉํ•˜์—ฌ ์ „์†กํ•  ๋•Œ ์–ด๋””๋กœ ๋ณด๋‚ด์•ผ ํ•˜๋Š”์ง€ ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ค ๋ฐฉ๋ฒ•์œผ๋กœ ๋ณด๋‚ผ์ง€ ์ •ํ•œ๋‹ค.

  • action : ํผ์„ ์ „์†กํ•  ์„œ๋ฒ„ ์ชฝ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ์ง€์ •ํ•œ๋‹ค.
  • name : ํผ์„ ์‹๋ฒฝํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ฆ„์„ ์ง€์ •ํ•œ๋‹ค.
  • target : action์—์„œ ์ง€์ •ํ•œ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ํ˜„์žฌ ์ฐฝ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ์œ„์น˜์— ์—ด๋„๋ก ์ง€์ •ํ•œ๋‹ค.
  • mathod : ํผ์„ ์„œ๋ฒ„์— ์ „์†กํ•  http ๋ฉ”์†Œ๋“œ๋ฅผ ์ •ํ•œ๋‹ค. (GET or POST)

โ€‹

์ „์†กํ•  http ๋ฉ”์†Œ๋“œ ์ข…๋ฅ˜์ธ GET ๊ณผ POST๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ํผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๋Š” ๋˜‘๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ, ๋ฐฉ์‹์ด ๋‹ค๋ฅด๋‹ค.

GET์€ ํผ ๋ฐ์ดํ„ฐ๋ฅผ url ๋์— ๋ถ™์—ฌ์„œ ๋ˆˆ์— ๋ณด์ด๊ฒŒ ๋ณด๋‚ด์ง€๋งŒ POST ๋ฐฉ์‹์€ ๋‚ด๋ถ€์ ์œผ๋กœ ๋ณด์ด์ง€ ์•Š๊ฒŒ ๋ณด๋‚ธ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฏ€๋กœ GET ๋ฐฉ์‹์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜์–ด ๋ณด์•ˆ์— ์ทจ์•ฝํ•˜์—ฌ ๋ณด๋‚ด๋ ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐœ์ธ์ •๋ณด๋‚˜ ๋ณด์•ˆ์„ ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” POST ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

๋˜ํ•œ, HTTP ๋ฉ”์†Œ๋“œ ์ •์˜์—์„œ GET๋ฐฉ์‹์€ ์ง€์ •๋œ ๋ฆฌ์†Œ์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ฒฝ์šฐ์ผ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ์ด๋‹ค. ๋ฐ˜๋ฉด POST ๋ฐฉ์‹์€ ์ง€์ •๋œ ๋ฆฌ์†Œ์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๊ฒฝ์šฐ์ผ๋•Œ ์“ฐ๊ณ  ์ˆ˜์ •, ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

โ€‹

3. ํผ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋‹ค์–‘ํ•œ ์—˜๋ฆฌ๋จผํŠธ

โ€‹

(1) ํผ ์—˜๋ฆฌ๋จผํŠธ ๊ทธ๋ฃน <field>, <legend>

<fieldest> : ํผ ํƒœ๊ทธ ์•ˆ์— ๊ด€๋ จ ์žˆ๋Š” ํผ ์—˜๋ฆฌ๋จผํŠธ๋“ค์„ ๊ทธ๋ฃนํ™”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ํƒœ๊ทธ ํ•˜์œ„์— <legend>ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฃนํ™”ํ•œ ํผ ์—˜๋ฆฌ๋จผํŠธ๋“ค์„ ๋ชฉ์ ์— ๋งž๊ฒŒ ์ด๋ฆ„์„ ์ง€์ •ํ•œ๋‹ค.

(2) ๋‹ค์–‘ํ•œ ๋ชจ์–‘์„ ๊ฐ€์ง„ <input>

์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์–‘ํ•˜๊ฒŒ ํผ ํƒœ๊ทธ์— ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด ์ค€๋‹ค.

์†์„ฑ

  • type : ํƒœ๊ทธ ๋ชจ์–‘์„ ๋‹ค์–‘ํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. type์—๋Š” text, radio, checkbox, password, button, hidden, fileupload, submit, reset ๋“ฑ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • name : ํƒœ๊ทธ ์ด๋ฆ„์„ ์ง€์ •ํ•œ๋‹ค.
  • readonly: ํƒœ๊ทธ๋ฅผ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ํ•จ.
  • maxlength : ํ•ด๋‹น ํƒœ๊ทธ ์ตœ๋Œ€ ๊ธ€์ž ์ˆ˜ ์ง€์ •ํ•จ.
  • required : ํ•ด๋‹น ํƒœ๊ทธ๊ฐ€ ํ•„์ˆ˜ํƒœ๊ทธ๋กœ ์ง€์ •๋œ๋‹ค.
  • autofocus : ์›น ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋”ฉ๋˜์ž๋งˆ์ž ์ด ์†์„ฑ์„ ์ง€์ •ํ•œ ํƒœ๊ทธ๋กœ ํฌ์ปค์Šค๊ฐ€ ์ด๋™๋œ๋‹ค.
  • placeholder : ํƒœ๊ทธ์— ์ž…๋ ฅํ•  ๊ฐ’์— ๋Œ€ํ•œ ํžŒํŠธ๋ฅผ ์ค€๋‹ค.
  • pattern : ์ •๊ทœํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ •๋ฒ”์œ„ ๋‚ด์˜ ์œ ํšจํ•œ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

(3) ๋ชฉ๋กํƒœ๊ทธ <select> <optgroup> <option>

<select> ํ•ญ๋ชฉ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ํƒœ๊ทธ. ์†์„ฑ ์ค‘์— size์™€ multiple ์†์„ฑ์ด ์žˆ๋‹ค.

<select>ํƒœ๊ทธ ํ•˜์œ„์— <optgroup>, <option> ํƒœ๊ทธ๊ฐ€ ์žˆ๋‹ค.

<optgroup>ํƒœ๊ทธ๋Š” <select>ํƒœ๊ทธ ์•ˆ์—์„œ ๋ชฉ๋ก๋“ค์„ ๊ทธ๋ฃนํ™”ํ•  ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋œ๋‹ค. label์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฃน ์ด๋ฆ„์„ ์ง€์ •ํ•œ๋‹ค. <optgroup> ํ•˜์œ„์— <option>ํƒœ๊ทธ๋ฅผ ํฌํ•จํ•œ๋‹ค. ์ด๊ฒƒ์€ ๋ชฉ๋ก์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

(4) ์—ฌ๋Ÿฌ ์ค„ ๊ธ€์ƒ์ž <textarea>

์†์„ฑ์ค‘์— row์™€ cols๊ฐ€ ์žˆ๋‹ค.

โ€‹

4. HTML5์—์„œ ์ถ”๊ฐ€๋œ ์—˜๋ฆฌ๋จผํŠธ

๋ช‡๊ฐ€์ง€ ์œ ์šฉํ•œ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ ์–ด๋ณด์ž๋ฉด

โ€‹

(1) ์ž…๋ ฅ ๊ฐ’ ํ›„๋ณด <datalist>

ํ…์ŠคํŠธ ์ƒ์ž์— ์ž…๋ ฅ ๊ฐ’ ํ›„๋ณด ๋ชฉ๋ก์„ ์ง€์ •ํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉ.

(2) <input> ํƒœ๊ทธ์˜ date

๋‚ ์งœ๋ฅผ ์ž…๋ ฅ๋ฐ›๊ธฐ ์œ„ํ•œ ์†์„ฑ ๊ฐ’. ๋‚ ์งœ ์„ ํƒ์„ ์œ„ํ•œ ๋‹ฌ๋ ฅ๋„ ํ•จ๊ป˜ ํ‘œ์‹œ๋จ.

(3) <input> ํƒœ๊ทธ์˜ number์™€ range

number์™€ range๋Š” ๋‘˜ ๋‹ค ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•  ๋•Œ ์‚ฌ์šฉ. ์ฐจ์ด์ ์œผ๋กœ rangeํƒœ๊ทธ๋Š” ์Šฌ๋ผ์ด๋” ํ˜•ํƒœ๋กœ ui๋กœ ๋ Œ๋”๋ง ๋จ.

728x90

'๐Ÿ“š FrontEnd -Study > HTML, CSS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

will-change  (0) 2022.08.13
transition / transform  (0) 2022.08.11
z-index  (0) 2022.08.10
max-width/max-height  (0) 2022.08.03
Semantic tag  (0) 2022.07.28

๋Œ“๊ธ€