๐Ÿ“

9. Forms

Index

ย 

1. <Form> ๊ธฐ๋ณธ ์†์„ฑ

ํผ์€ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ ํ™”๋ฉด์—์„œ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ, ํšŒ์› ๊ฐ€์ž…ํ•  ๋•Œ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์–‘์‹ ๋“ฑ์€ ๋ชจ๋‘ ํผ์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. ํผ์— ์ž…๋ ฅ์„ ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋Š” ์„œ๋ฒ„๋กœ ์ „์†ก์„ ํ•˜๊ฒŒ ๋˜๊ณ , ์ „์†กํ•œ ๋ฐ์ดํ„ฐ๋Š” ์›น ์„œ๋ฒ„๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ๋‹ค์‹œ ๋‹ค๋ฅธ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
notion imagenotion image
ย 

1.1 ํผ ๋™์ž‘ ๋ฐฉ์‹

  1. ์›น ํŽ˜์ด์ง€์— ์žˆ๋Š” form์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  1. ์›น ํŽ˜์ด์ง€ ๋‚ด ์•ก์…˜์ด ์ผ์–ด๋‚˜๊ฒŒ ๋˜๋ฉด ๋ฐ์ดํ„ฐ๋Š” ์›น ์„œ๋ฒ„๋กœ ์ด๋™ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  1. ์›น ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด APP์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ APP์€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ณ„๋„์˜ ์„œ๋ฒ„์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  1. ํ•„์š”์— ๋”ฐ๋ผ APP์€ DB๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ DB๋Š” ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ณ„๋„์˜ ์„œ๋ฒ„์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  1. DB์—์„œ CRUD ์ž‘์—…์ด ์ผ์–ด๋‚˜๊ณ  ์ž‘์—… ๊ฒฐ๊ณผ๋ฅผ APP์œผ๋กœ, WEB์œผ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
    1. CRUD
      ์ด๋ฆ„
      ์กฐ์ž‘
      SQL
      ์ƒ์„ฑ
      INSERT
      ์ฝ๊ธฐ
      SELECT
      ๊ฐฑ์‹ 
      UPDATE
      ์‚ญ์ œ
      DELETE
  1. ์›น ์„œ๋ฒ„๋Š” ๋ฐ›์€ ๊ฒฐ๊ณผ๋ฅผ Client ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  1. ์‚ฌ์šฉ์ž ๋ธŒ๋ผ์šฐ์ €๋Š” Response ๋ฐ›์€ ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
ย 

1.2 ํผ์˜ ์†์„ฑ

form์˜ ์†์„ฑ์€ ์•„๋ž˜ ํ‘œ์™€ ๊ฐ™์ด ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
form ์†์„ฑ
Name
์„ค๋ช…
์ž…๋ ฅ ๊ฐ’์„ ์ „์†กํ•  ํŽ˜์ด์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
ํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. method์˜ ์†์„ฑ์—๋Š” get๊ณผ post๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. get์€ ์›น ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ฃผ์†Œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋ฐฉ์‹์ด๊ณ , post๋Š” ํŒŒ์ผ์„ ์˜ฌ๋ฆฌ๊ฑฐ๋‚˜, ๋ณด์•ˆ์ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ๋“ฑ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋˜ ํ•œ, ์ฃผ์†Œ์— ์ž…๋ ฅ ๋‚ด์šฉ์ด ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
ํผ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
ย 

1.3 ํผ์˜ ํƒ€์ž…

Form ํƒ€์ž…
type
์„ค๋ช…
์ž…๋ ฅํ•œ text๋ฅผ ๊ทธ๋Œ€๋กœ ํ‘œํ˜„ํ•ด์ฃผ๋Š” form
๋งˆ์Šคํฌ ์ฒ˜๋ฆฌ๋œ text form
์—ฌ๋Ÿฌ ์ค„์˜ text๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” form
๊ฒ€์ƒ‰ ์ฐฝ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” form
๋‚ ์งœ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” form
์‹œ๊ฐ„์„ ์ž…๋ ฅํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” form
์Šฌ๋ผ์ด๋“œ ๋ฐ” ํ˜•์‹์˜ form
์ˆ˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” form
์ƒ‰์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” form
์„ ํƒ ํ•ญ๋ชฉ ์ค‘ ํ•˜๋‚˜๋งŒ ์„ ํƒ ๊ฐ€๋Šฅํ•œ form
์„ ํƒ ํ•ญ๋ชฉ ์ค‘ 0๊ฐœ ์ด์ƒ ์„ ํƒ ๊ฐ€๋Šฅํ•œ form
ํŒŒ์ผ์„ ์—…๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋Š” form
์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๊ฒŒ ํ•˜๋Š” form
์›นํŽ˜์ด์ง€ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๊ฒŒ ํ•˜๋Š” form
์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๊ฒŒ ํ•˜๋Š” form
ย 

2. <input>

input์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์–‘ํ•˜๊ฒŒ ํผ ํƒœ๊ทธ์— ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด ์ฃผ๊ณ , ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •๋ณด๋ฅผ ์ž…๋ ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
ย 
input์˜ ์†์„ฑ์€ ์•„๋ž˜ ํ‘œ์™€ ๊ฐ™์ด ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
input์˜ ์†์„ฑ
Name
์„ค๋ช…
ํƒœ๊ทธ ๋ชจ์–‘์„ ๋‹ค์–‘ํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Type์—์„œ๋Š” text, radio, checkbox, password, button ๋“ฑ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํƒœ๊ทธ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
ํƒœ๊ทธ๋ฅผ ์ฝ๊ธฐ์ „์šฉ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
์ตœ๋Œ€ ๊ธ€์ž ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
ํ•„์ˆ˜ ํƒœ๊ทธ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ํ•„์ˆ˜ ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ , submit ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์—๋Ÿฌ๊ฐ€ ๋–  ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์›น ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋”ฉ ๋˜๋ฉด ์ด ์†์„ฑ์„ ์ง€์ •ํ•œ ํƒœ๊ทธ๋กœ ํฌ์ปค์Šค๊ฐ€ ๋ฐ”๋€๋‹ˆ๋‹ค.
์ž…๋ ฅํ•  ๊ฐ’์— ๋Œ€ํ•œ ํžŒํŠธ๋ฅผ ์ค๋‹ˆ๋‹ค.
์ •๊ทœํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๋ฒ”์œ„ ๋‚ด์˜ ์œ ํšจํ•œ ๊ฐ’์„ ์ž…๋ ฅ ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
ย 
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>form</title> </head> <body> <input type="text"><br> <input type="password"><br> <input type="date"><br> <input type="time"><br> <input type="range"><br> <input type="color"><br> <input type="radio"><br> <input type="checkbox"><br> <input type="file"><br> <textarea name="name" rows="8" cols="80"></textarea> </body> </html>
ย 
ย 

3. <label>

๋‹จ์ˆœํžˆ input ํƒœ๊ทธ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ํ…์ŠคํŠธ๋ฅผ ์˜†์— ๋ถ™์—ฌ ๋ฌด์—‡์„ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ์‹œ๊ฐ ์žฅ์• ์ธ๋“ค๋„ ํผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹œ๋ฉ˜ํ‹ฑํ•œ <label> ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ฉ์‹œ๋‹ค.
ย 

3.1 <label> ์˜ ์‚ฌ์šฉ๋ฒ•

label ์€ ๋‘ ๊ฐ€์ง€ ์‚ฌ์šฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  1. ํ…์ŠคํŠธ์˜ ์„ค๋ช…๊ณผ ํผ ์ž…๋ ฅ ๋ชจ๋‘๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฐฉ์‹
<label> ์ด๋ฆ„ : <input type="text" name="name"> </label>
ย 
  1. ํผ ์ž…๋ ฅ์—์„œ ๋ถ„๋ฆฌํ•˜์—ฌ for ์†์„ฑ์„ ์ด์šฉํ•ด ๋ ˆ์ด๋ธ”์„ ์ง€์ •ํ•˜๋Š” ๋ฐฉ์‹
<label for="myName">์ด๋ฆ„ : </label> <input type="text" name="name" id="myName">
ย 

3.2 for ์†์„ฑ

for ์†์„ฑ์€ ๋ ˆ์ด๋ธ”์ด ์†ํ•œ input ๊ณผ ๊ฐ™์€ ํผ ์ปจํŠธ๋กค(input, select, textarea ์™€ ๊ฐ™์€ ์š”์†Œ๋“ค)์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ์˜ˆ์‹œ์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ, for ์†์„ฑ์˜ ๊ฐ’์€ ํ•ด๋‹น ๋ ˆ์ด๋ธ”์ด ์†ํ•  ํผ ์ปจํŠธ๋กค์˜ id๊ฐ’๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ ˆ์ด๋ธ”๊ณผ ํผ ์ปจํŠธ๋กค์ด ์—ฐ๊ฒฐ๋˜๋ฉด ๋ ˆ์ด๋ธ”์„ ์„ ํƒํ•ด๋„ ํ•ด๋‹นํ•˜๋Š” ํผ ์ปจํŠธ๋กค์ด ์„ ํƒ๋œ ๊ฒƒ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์  ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๋Š” ํด๋ฆญ ํ•  ์ˆ˜ ์žˆ๋Š” ์˜์—ญ์ด ๋” ๋„“์–ด์ ธ ํผ์„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
ย 
ย 

4. <select>

<select> ์š”์†Œ๋Š” ๋“œ๋กญ๋‹ค์šด ๋ฆฌ์ŠคํŠธ ๋ฐ•์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•ด์•ผํ•˜๋Š” ๋ฆฌ์ŠคํŠธ ๋ฐ•์Šค์•ˆ์˜ ์•„์ดํ…œ์„ ๋งŒ๋“ค ๋•Œ์—๋Š” <option> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
<form action=""> <label for="myDevice">ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์Šค๋งˆํŠธํฐ์˜ ์ œ์กฐ์‚ฌ๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”</label> <select name="device" id="myDevice"> <option value="iphone">์•„์ดํฐ</option> <option value="galaxy">๊ฐค๋Ÿญ์‹œํฐ</option> <option value="ใ…œใ…œ">LGํฐ</option> </select> </form>
ย 

4.1 <select>์˜ ์†์„ฑ๋“ค

  1. multiple="multiple" : multiple์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์˜ option ์š”์†Œ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋‹จ, ๋‹จ์ˆœ ํด๋ฆญ์œผ๋กœ๋Š” ์„ ํƒ๋˜์ง€ ์•Š์œผ๋ฉฐ windows ์—์„œ๋Š” ctrl, OSX ์—์„œ๋Š” command ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ณ  ํด๋ฆญํ•ด์•ผ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  1. size : size ์†์„ฑ์„ ํ†ตํ•ด ๋“œ๋กญ๋‹ค์šด ๋ฆฌ์ŠคํŠธ์—์„œ ํ•œ๋ฒˆ์— ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š” option์˜ ๊ฐฏ์ˆ˜๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ย 

4.2 <option>์˜ ์†์„ฑ๋“ค

  1. value : <option> ์š”์†Œ๋Š” value ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ ํƒ๊ฐ’์— ๋”ฐ๋ผ ์„œ๋ฒ„์— ์–ด๋– ํ•œ ๊ฐ’์„ ์ „์†กํ• ์ง€ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  1. selected : selected ์†์„ฑ์€ ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋”ฉ๋˜๊ณ  ๋‚œ ๋’ค ๊ธฐ๋ณธ์œผ๋กœ ์„ ํƒ๋˜๋Š” ์˜ต์…˜์„ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. selected ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์ฒซ๋ฒˆ์งธ <option> ์ด ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ ์„ ํƒ๋˜๊ณ , ์•„๋ฌด๊ฒƒ๋„ ์„ ํƒํ•˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๋ฉด ์ฒซ๋ฒˆ์งธ <option> ๊ฐ’์˜ value ๊ฐ€ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
ย 

5. <fieldset>

fieldset ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ ์ž์‹ ์š”์†Œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํผ ์ปจํŠธ๋กค๋“ค์„ ๊ทธ๋ฃนํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ํผ ๋‚ด์šฉ์ด ๋ฐฉ๋Œ€ํ•˜์—ฌ ์„น์…˜๋ณ„๋กœ ๋‚˜๋ˆŒ ํ•„์š”์„ฑ์ด ์žˆ์„ ๊ฒฝ์šฐ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ์Šคํƒ€์ผ์„ ๋ณด์‹œ๋ฉด ๊ทธ ์˜๋ฏธ๊ฐ€ ๋” ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค.
<!-- ๋ธŒ๋ผ์šฐ์ €์—์„œ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„๋˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด์„ธ์š” --> <form action=""> <fieldset> <legend>๊ฐœ์ธ์ •๋ณด</legend> <label for="myName">์ด๋ฆ„</label> <input type="text" name="name" id="myName"> <label for="myTel">์ „ํ™”๋ฒˆํ˜ธ</label> <input type="tel" name="tel" id="myTel"> <label for="myEmail">์ด๋ฉ”์ผ</label> <input type="email" name="email" id="myEmail"> </fieldset> <fieldset> <legend>๊ฐœ์ธ์ •๋ณด ์ œ๊ณต ๋™์˜</legend> <label for="checkAgree">๊ฐœ์ธ์ •๋ณด ์ œ๊ณต์— ๋™์˜ํ•˜์‹ญ๋‹ˆ๊นŒ?</label> <input type="checkbox" name="agree" id="checkAgree"> </fieldset> </form>
ย 
ย 

6. <legend>

<legend> ์š”์†Œ๋Š” <fieldset> ํƒœ๊ทธ ๋ฐ”๋กœ ๋’ค์— ์œ„์น˜ํ•˜๋ฉฐ ํผ ๊ทธ๋ฃน์˜ ๋ชฉ์ ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ œ๋ชฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋“œ์‹œ <fieldset>์˜ ์ฒซ๋ฒˆ์งธ ์ž์‹์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
ย 
ย 

7. <button>

<button> ํƒœ๊ทธ๋Š” ํด๋ฆญ ๊ฐ€๋Šฅํ•œ ๋ฒ„ํŠผ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋ฒ„ํŠผ์˜ ํ‘œ์‹œ ๋ฐฉ๋ฒ•์„ ๋‹ค์–‘ํ•˜๊ฒŒ ์ œ์–ดํ•˜๊ณ  ๋ฒ„ํŠผ ๋‚ด๋ถ€์— ๋‹ค๋ฅธ ์ž์‹ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
ย 

7.1 button ํƒœ๊ทธ์˜ type

type์€ ๋ฒ„ํŠผ์˜ ํ–‰๋™ ๋ฐฉ์‹์„ ์„ค์ •ํ•˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค.
  • submit: ๋ฒ„ํŠผ์ด ์„œ๋ฒ„๋กœ ์–‘์‹ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ด๋ฉฐ, ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฐ’์ผ ๋•Œ๋„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— form ์–‘์‹์„ ์ œ์ถœํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ๋ฐ˜๋“œ์‹œ type์„ ์„ ์–ธํ•ด์ค์‹œ๋‹ค.
  • reset:ย <input type="reset">์ฒ˜๋Ÿผ, form์˜ ๋ชจ๋“  ๊ฐ’์„ ์ดˆ๊ธฐํ™”์‹œํ‚ต๋‹ˆ๋‹ค.
  • button: ํด๋ฆญ ๊ฐ€๋Šฅํ•œ ๋ฒ„ํŠผ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๋Šฅ์„ ๋ถ€์—ฌํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๋ณ„ ๋‹ค๋ฅธ ์ž‘๋™์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ย 
notion imagenotion image
<!-- ๋„ค์ด๋ฒ„ ๋ฉ”์ธ ํ™”๋ฉด์˜ ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ html ๊ตฌ์กฐ --> <button id="search_btn" type="submit" title="๊ฒ€์ƒ‰"> <span class="blind">๊ฒ€์ƒ‰</span> <span class="ico_search_submit"></span> </button>
ย 

7.2 Input vs button ๋ฌด์—‡์„ ์จ์•ผํ• ๊นŒ?

<button>ย ์š”์†Œ๋Š”ย <input>ย ์š”์†Œ๋ณด๋‹ค ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜๊ธฐ ํ›จ์”ฌ ์ˆ˜์›”ํ•ฉ๋‹ˆ๋‹ค.ย <input>์€ ๋‹ซ๋Š” ํƒœ๊ทธ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์—ย valueย ํŠน์„ฑ์— ํ…์ŠคํŠธ ๊ฐ’ ๋ฐ–์— ์ง€์ •ํ•  ์ˆ˜ ์—†์ง€๋งŒ,ย <button>์€ ๋‚ด๋ถ€์— ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ž์‹ ์ปจํ…์ธ ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๊ณ  ์—ฌ๊ธฐ ๋”ํ•ดย ::after์™€ย ::beforeย ์™€ ๊ฐ™์€ ๊ฐ€์ƒ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋” ๋‹ค์ฑ„๋กญ๊ณ  ๋ฉ‹์ง„ ์Šคํƒ€์ผ์„ ์ ์šฉํ•ด์•ผ ํ•œ๋‹ค๋ฉด <button> ์š”์†Œ๋ฅผ ์šฐ์„ ์ ์œผ๋กœ ๊ณ ๋ คํ•ด ๋ณด๋Š”๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
ย 
ย 
ย 

8. ์‹ค์Šต

<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>form</title> </head> <body> <!-- action์—๋Š” ๋„๋‹ฌํ•˜๋Š” ์ฃผ์†Œ๋ฅผ ์ ๋Š”๋ฐ ์•ˆ์ ์œผ๋ฉด ์ž๊ธฐ ์ž์‹  --> <form action="" method="get"> <label for="id">์•„์ด๋””</label> <input type="text" name="์•„์ด๋””" id="id"><br> <label for="pw">ํŒจ์Šค์›Œ๋“œ</label> <input type="password" name="ํŒจ์Šค์›Œ๋“œ" id="pw"><br> <label for="male">๋‚จ</label> <input type="radio" name="์„ฑ๋ณ„" id="male" value="๋‚จ"> <label for="female">์—ฌ</label> <input type="radio" name="์„ฑ๋ณ„" id="female" value="์—ฌ"><br> <p>์ฆ๊ฒจ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด</p> <input type="checkbox" name="์–ธ์–ด" id="python" value="Python"><label for="python">Python</label><br> <input type="checkbox" name="์–ธ์–ด" id="python" value="Javascript"><label for="python">Javascript</label><br> <input type="checkbox" name="์–ธ์–ด" id="python" value="C"><label for="python">C</label><br> <input type="submit" value="ํšŒ์›๊ฐ€์ž…"> </form> </body> </html>
ย 

ย 
์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ
  • checked : ์ฒดํฌ์ƒํƒœ ํ‘œ์‹œ
  • required : ํ•„์ˆ˜๊ฐ’
  • min : ์ตœ์†Ÿ๊ฐ’
  • max :ย ์ตœ๋Œ“๊ฐ’
  • value : ์ž…๋ ฅ๋œ ๊ฐ’
  • placeholder : ์ž…๋ ฅ๊ฐ’ ํžŒํŠธ
  • minlength : ์ตœ์†Œ ๊ธธ์ด
  • maxlength : ์ตœ๋Œ€ ๊ธธ์ด