[HTML/CSS] Day8. Forms (2) ๐Ÿ“

์˜ค์ „์˜ ๊ธ์ •์™• "๋ฉ”์ด์ปค์ค€๐Ÿ˜†"๋‹˜์˜ ํž๋ง ์›Œํฌ์ƒต์ด ๋๋‚œ ํ›„ <form>๊ณผ ๊ด€๋ จ๋œ ํƒœ๊ทธ์™€ ์†์„ฑ๋“ค์„ ๋งˆ๋ฌด๋ฆฌ ํ–ˆ๋‹ค.
<form>๊ณผ ๊ด€๋ จ๋œ ํƒœ๊ทธ๋“ค์€ ์‹ค๋ฌด์—์„œ๋„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํƒœ๊ทธ๋“ค์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ํ•œ๋ฒˆ ๋” ๋ณต์Šตํ•ด๋ณด๋„๋ก ํ•˜์ž!

<Form>์˜ GET/POST METHOD ๐Ÿ˜ฎ

<form>์€ <input> <select> ๋“ฑ์—์„œ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๊ฑฐ์ณ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ํƒœ๊ทธ์ด๋‹ค.
์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๊ฒƒ์€ ๋‹จ์ˆœํ•œ ๊ณผ์ • ๊ฐ™์ง€๋งŒ ์šฐ๋ฆฌ์˜ ๋ณต์žกํ•œ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๋Š” ์ ˆ๋Œ€ ํ‰๋ฒ”ํ•˜๊ฒŒ ๋ณด๋‚ด์ง€ ์•Š๋Š”๋‹ค.
์ด๋ž˜์„œ ๊ณต๋ถ€๋ฅผ ์•ˆํ•˜๊ณค ์ ˆ๋Œ€ ์•ˆ๋œ๋‹ค.

<form>์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฉ”์„œ๋“œ๋ฅผ ๋‘๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

<form action="" method="">
	<!-- <input> ๋“ฑ forms ํƒœ๊ทธ -->  
<form>

์ฒซ๋ฒˆ์งธ ์†์„ฑ์ธ action์€ ํผ ๋ฐ์ดํ„ฐ(form data)๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ผ ๋•Œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ๋„์ฐฉํ•  URL์„ ์„ค์ •ํ•œ๋‹ค.

<form action="URL/ํŒŒ์ผ๊ฒฝ๋กœ" method="">
	<!-- <input> ๋“ฑ forms ํƒœ๊ทธ -->  
<form>

์†์„ฑ action์˜ ๊ฐ’์€ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์ ˆ๋Œ€๊ฒฝ๋กœ์™€ ์ƒ๋Œ€๊ฒฝ๋กœ

  • ์ ˆ๋Œ€ ๊ฒฝ๋กœ(absolute URL) : ๋‹ค๋ฅธ ์›น ์‚ฌ์ดํŠธ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒฝ๋กœ. ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์ฃผ์†Œ์ฐฝ์—์„œ ์ž์ฃผ ๋ณด๋Š” "์™„์ „ํ•œ URL"์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

  • ์ ˆ๋Œ€ ๊ฒฝ๋กœ(absolute URL) : ์›น ์‚ฌ์ดํŠธ ๋‚ด์˜ ํŒŒ์ผ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒฝ๋กœ. ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์™ธ๋ถ€ CSSํŒŒ์ผ์„ link href=""ํƒœ๊ทธ๋กœ ์—ฐ๊ฒฐํ•  ๋•Œ์˜ ๊ฒฝ๋กœ์˜ ํ˜•์‹์„ ๊ฐ–์ถ˜ ๊ฒฝ๋กœ๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.


๋‘๋ฒˆ์งธ ์†์„ฑ์ธ method๋Š” ํผ ๋ฐ์ดํ„ฐ(form data)๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ผ ๋•Œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ๋„์ฐฉํ•  URL์„ ์„ค์ •ํ•œ๋‹ค. ์–‘์‹์„ ์ œ์ถœํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” "HTTP" ๋ฉ”์„œ๋“œ์ด๋‹ค.

์†์„ฑ method์˜ ๊ฐ’์€ ๋งŽ์ด ์žˆ์ง€๋งŒ ๋‚˜๋Š” get๊ณผ post๋งŒ ์ผ๋‹จ ๋‹ค๋ฃจ๋„๋ก ํ•œ๋‹ค.
ํ˜„์žฌ http๋ฅผ ๋™๊ธฐ๋ถ„๋“ค๊ณผ ์Šคํ„ฐ๋”” ์ค‘์ด๋ผ ๋‚˜์ค‘์— ๊ผญ http๋ฅผ ์ฃผ์ œ๋กœ ๋‹ค๋ฃจ๋„๋ก ํ•ด๋ณด๊ฒ ๋‹ค.

์•„๋ฌดํŠผ ์†์„ฑ๋งˆ๋‹ค ๊ฐ„๋‹จํ•œ ์„ค๋ช…์„ ํ•˜์ž๋ฉด ์ด๋ ‡๋‹ค.

  • get : ํด๋ผ์ด์–ธํŠธ(์‚ฌ์šฉ์ž)๊ฐ€ ์„œ๋ฒ„๋ฅผ ๋ถˆ๋Ÿฌ์„œ ์š”์ฒญ์‚ฌํ•ญ์„ ๋งํ•˜๋Š” ๊ฒƒ
  • post : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์•„๋ฌด๋„ ๋ณด์ง€ ๋ชปํ•˜๊ฒŒ ๋ณด๋‚ด๋Š” ๊ฒƒ

์˜ค๋Š˜ ๊ฐ•์‚ฌ๋‹˜๊ป˜์„œ ๊ธฐ๊ฐ€ ๋ง‰ํžŒ ์ดํ•ด๊ฐ€ ์™์™ ๋˜๋Š” ๋น„์œ ๋ฅผ ํ•ด์ฃผ์…จ๋‹ค..! ๐Ÿคฉ ์ง„์งœ ๊ฐ•์‚ฌ๋‹˜์€ ์ฒœ์žฌ์ธ๊ฐ€?

get์€ ๋‚ด๊ฐ€(์‚ฌ์šฉ์ž) ์ €๊ธฐ ๋ฉ€๋ฆฌ ์žˆ๋Š” ์‚ฌ๋žŒ(์„œ๋ฒ„)ํ•œํ…Œ ํฐ ์†Œ๋ฆฌ(๋ณด์•ˆ ๋ชฉ์  X)๋กœ ์ •๋ณด(๋ฐ์ดํ„ฐ)๋ฅผ ๋ˆ„๊ตฌ๋“ ์ง€ ๋“ค๋ฆฌ๊ฒŒ(URLํ‘œ์‹œ) ๋งํ•˜๋Š” ๊ฒƒ(์š”์ฒญํ•˜๋Š” ๊ฒƒ)์ด๋‹ค.

post๋Š” ๋‚ด๊ฐ€(์‚ฌ์šฉ์ž) ์ €๊ธฐ ์žˆ๋Š” ์‚ฌ๋žŒ(์„œ๋ฒ„)ํ•œํ…Œ ์กฐ์šฉํžˆ(๋ณด์•ˆ ๋ชฉ์  O) ์ •๋ณด(๋ฐ์ดํ„ฐ)๋ฅผ ์ชฝ์ง€์— ์ ‘์–ด์„œ(URLํ‘œ์‹œ X) ์ „ํ•ด์ฃผ๋Š” ๊ฒƒ(์š”์ฒญํ•˜๋Š” ๊ฒƒ)์ด๋‹ค.

์ด ๋น„์œ ๋ฅผ ๋“ฃ๊ณ  ์ •๋ง ๊ฐํƒ„์„ ํ–ˆ๋‹ค... ๋ ˆ์ „๋“œ ๊ฐ•์‚ฌ๋‹˜.. ์กด๊ฒฝํ•ฉ๋‹ˆ๋‹ค.. ๐Ÿซก

๊ฐ„๋‹จํ•œ ๋ณต์Šต ์ •๋ฆฌ โœ๏ธ

์šฐ์„  ์ „์ฒด์ ์ธ ์˜ค๋Š˜์˜ ์‹ค์Šต ์†Œ์Šค ์ฝ”๋“œ๋Š” ์ด๋ ‡๋‹ค.

<!-- form ๋‚ด๋ถ€ -->
	  <input type="text" required>
      
	  <input type="tel">

      <input type="email">
   
      <select name="device" id="myDevice" size="1">
        <option value="0">์„ ํƒ</option>
        <option value="์• ํ”Œ">์•„์ดํฐ</option>
        <option value="์‚ผ์„ฑ" selected>๊ฐค๋Ÿญ์‹œ</option>
        <option value="LG">LG</option>
      </select>

	  <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>
      
	  <input type="submit">
      <button type="submit">์ œ์ถœ</button>

	  <textarea name="" id="" cols="10" rows="10"></textarea>

	  <label for="solasystem">์›ํ•˜๋Š” ํ–‰์„ฑ์„ ์„ ํƒํ•˜์„ธ์š” : </label>
      <input type="text" id="solasystem" list="planets" name="planets">
      <datalist id="planets">
          <option value="์ˆ˜์„ฑ">์ˆ˜์„ฑ</option>
          <option value="๊ธˆ์„ฑ">๊ธˆ์„ฑ</option>
          <option value="์ง€๊ตฌ">์ง€๊ตฌ</option>
          <option value="ํ™”์„ฑ">ํ™”์„ฑ</option>
      </datalist>

type="text" / type="tel" / type="email" ๐Ÿ“ง

  • <input type="text"> : ๊ธฐ๋ณธ์ ์ธ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฃผ๋กœ "๋กœ๊ทธ์ธ" ํŽ˜์ด์ง€์˜ ์•„์ด๋””๋ฅผ ์ž…๋ ฅํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

  • <input type="tel"> : ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์ž…๋ ฅ์ฐฝ์„ ์ƒ์„ฑํ•œ๋‹ค. ์ „ํ™”๋ฒˆํ˜ธ์˜ ์ž…๋ ฅ ํ˜•์‹์„pattern ์†์„ฑ์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

pattern์€ []์•ˆ์— ์ˆซ์ž์˜ ๋ฒ”์œ„๋ฅผ ์ž…๋ ฅํ•˜๊ณ  {}์•ˆ์— ์ˆซ์ž์˜ ๊ธธ์ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

<input type="tel" pattern="[0-9]{3}-[0-9]{4}-[0-9]{4}">

<small>ํ˜•์‹ : 123-4567-8910</small>

๋งŒ์•ฝ ์„ค์ •ํ•œ ํ˜•์‹๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ž‘์„ฑ์„ ํ–ˆ๋‹ค๋ฉด "์š”์ฒญํ•œ ํ˜•์‹๊ณผ ์ผ์น˜์‹œํ‚ค์„ธ์š”."๋ผ๋Š” ๊ฒฝ๊ณ  ํˆดํŒ์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

  • <input type="email"> : ์ด๋ฉ”์ผ์„ ์ž…๋ ฅํ•˜๋Š” ์ž…๋ ฅ์ฐฝ์„ ์ƒ์„ฑํ•œ๋‹ค. ์ด๋ฉ”์ผ ํ˜•์‹์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์ •์ด ๋˜์–ด์žˆ์–ด ์ด๋ฉ”์ผ ํ˜•์‹์„ ์“ฐ์ง€ ์•Š์œผ๋ฉด tel๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฒฝ๊ณ  ํˆดํŒ์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

์™œ type="email"์ด๋‚˜ type="tel"์„ ๊ตณ์ด ์™œ ์“ฐ๋Š”๊ฑฐ์•ผ? ๐Ÿ˜•

**์™œ ๊ตณ์ด ๋ฒˆ๊ฑฐ๋กญ๊ฒŒ ์šฐ๋ฆฌ๋Š” type์„ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ <input>์„ ์จ์•ผํ•˜๋Š”๊ฑธ๊นŒ? ๊ทธ๋ƒฅ type="text"๋กœ ํ†ต์ผํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋˜๋Š”๊ฑด๊ฐ€?

๋ฌผ๋ก  type="text"๋กœ ํ†ต์ผํ•˜๋ฉด ํŽธํ•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹ฌ์ง€์–ด ์ถœ๋ ฅ์—๋Š” ์ฐจ์ด๊ฐ€ ์ „ํ˜€ ์—†๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ์„ธ๋ถ€์ ์œผ๋กœ type์„ ๋ถ„๋ฅ˜ํ•œ ์ด์œ ๋Š” "์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์˜ฌ๋ฐ”๋ฅธ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ"๋ผ๊ณ  ํ•œ๋‹ค.

๋งŒ์•ฝ ๋‹น์‹ ์ด ์‚ฌ์šฉ์ž์˜ ์ด๋ฉ”์ผ์„ inputํƒœ๊ทธ์˜ ๊ฐ’์œผ๋กœ ๋ฐ›์•„์•ผํ•˜๋Š” ์ƒํ™ฉ์ธ๋ฐ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์ง€ ์•Š๊ณ  ์•„์ด๋”” ๋ถ€๋ถ„๋งŒ ๋ณด๋‚ธ๋‹ค๋ฉด ์ผ์„ ๋ฒˆ๊ฑฐ๋กญ๊ฒŒ ๋‘๋ฒˆ ๋” ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์˜จ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” type์„ ์ƒํ™ฉ์— ๋ถ„๋ฅ˜ํ•˜๋ฉด์„œ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค.

๋‹ค์‹œ๋Š” type์„ ๋ฌด์‹œํ•˜์ง€๋งˆ๋ผ...




<select>์™€ <option>

๋‹ค๋ฅธ <input>๊ณผ ๋‹ค๋ฅด๊ฒŒ type์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ž์ฒด๊ฐ€ forms ํƒœ๊ทธ์ธ <select>์™€ <option>์ด๋‹ค.

<select>๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ณด๊ธฐ ๋ฉ”๋‰ด์ธ <option>์„ ์„ค์ •ํ•˜๊ณ  ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐฉ์‹์˜ ํƒœ๊ทธ์ด๋‹ค.

์œ„์˜ ์ด๋ฏธ์ง€๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” option์ฐฝ์ด ์—ด๋ฆฌ๊ณ  ์„ ํƒํ•  option์„ ํด๋ฆญํ•˜๋ฉด ๋œ๋‹ค.

<select>์—๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์†์„ฑ์ธ multiple๊ณผ size์ด๋‹ค.

  • size : ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด์—์„œ ํ‘œ์‹œํ•˜๋Š” ์ตœ๋Œ€๋กœ ์˜ต์…˜์˜ ์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

  • multiple : ์‚ฌ์šฉ์ž๊ฐ€ ctrl์ด๋‚˜ cmdํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ ์˜ต์…˜์„ ๋ณต์ˆ˜๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 <select name="device" id="myDevice" size="3" multiple>
      <option value="">์„ ํƒ</option>
      <option value="์• ํ”Œ">์•„์ดํฐ</option>
      <option value="์‚ผ์„ฑ" selected>๊ฐค๋Ÿญ์‹œ</option>
      <option value="LG">LG</option>
 </select>

์•„๋ž˜ ์ด๋ฏธ์ง€๋Š” multiple์†์„ฑ์„ ์ ์šฉํ•˜์—ฌ ctrl์ด๋‚˜ cmdํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ ์„ ํƒ์„ ํ•œ ์ƒํƒœ์ด๋ฉฐ, size๋ฅผ 3์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์ตœ๋Œ€ ์˜ต์…˜์˜ ์ˆ˜๋ฅผ ์กฐ์ •ํ•œ ๊ฒƒ์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  <option>์—๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์†์„ฑ์ด ์žˆ๋‹ค. selected์™€ value์ด๋‹ค.

  • value : ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ <option>์˜ ๊ฐ’์„ ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ’์„ ์„ค์ •ํ•œ๋‹ค. ์ฃผ์˜ํ•ด์•ผํ•  ์ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ๊ฐ’์„ ์„œ๋ฒ„์— ์ „๋‹ฌํ•  ๋•Œ ๋ฐ˜๋“œ์‹œ value ์†์„ฑ์˜ ๊ฐ’์„ ๋ฐ˜๋“œ์‹œ ๋„ฃ์–ด์ค˜์•ผ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก ๊ฐ€๋Šฅํ•˜๋‹ค. ์ฐธ๊ณ ๋กœ <option>์˜ ์ฝ˜ํ…์ธ ๋Š” ์ถœ๋ ฅ๋งŒ ๋  ๋ฟ ์ „์†ก๋˜์ง€ ์•Š๋Š”๋‹ค.

๋งŒ์•ฝ์— <option>์„ ์„ ํƒํ•˜์ง€ ์•Š๊ณ  ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๋ฉด <option>์˜ ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ ์˜ต์…˜์˜ value๊ฐ€ ์ „์†ก๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋ฌด๋Ÿฐ value๊ฐ’์„ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด์ง€ ์•Š๊ฒ ๋‹ค๋ฉด <option>์˜ value๊ฐ’์„ ๋นˆ ๊ฐ’ ํ˜•ํƒœ""๋กœ ์„ค์ •ํ•˜๋ฉด ๋œ๋‹ค.




<fieldset>๊ณผ <legend>

<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>์ด๋ผ๋Š” ํƒœ๊ทธ๋ฅผ ์˜ค๋Š˜ ์ฒ˜์Œ๋ด์„œ ์–ด๋–ค ์šฉ๋„์ธ์ง€ ์ž˜ ์•Œ์•„๋‘์–ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.๐Ÿซฃ

<fieldset>๋Š” **<form> ๋‚ด์—์„œ ๊ตฌ์—ญ์„ ๊ทธ๋ฃนํ™”(๊ตฌํšํ™”) ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์˜์—ญ์„ ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ ์šฉ๋œ ์Šคํƒ€์ผ(User-agent-stylesheet)์ด ์žˆ์–ด CSS๋กœ ์ดˆ๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
์•„๋ž˜์˜ ์ด๋ฏธ์ง€๋Š” <fieldset>์˜ User-agent-stylesheet์™€ ์ถœ๋ ฅ ๊ฒฐ๊ณผ์ด๋‹ค.

๋˜ํ•œ <fieldset>์€ <form> ํƒœ๊ทธ ๋‚ด์—์„œ ๊ทธ๋ฃนํ™”ํ•ด์ฃผ๋Š” ํƒœ๊ทธ์ผ ๋ฟ SEO์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹ค.
์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ฒƒ์€ <fieldset>์˜ ๋ฐ”๋กœ ์•„๋ž˜์— ์‚ฌ์šฉํ•˜๋Š” <legend>์ด๋‹ค.

<legend>๋Š” <fieldset>์˜ "Heading"์˜ ์—ญํ• ์„ ํ•œ๋‹ค. ์•„๋ž˜์˜ ์ด๋ฏธ์ง€๋ฅผ ๋ณด๋ฉด ๋นจ๊ฐ„ ๋ฐ•์Šค๊ฐ€ <legend>๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ์˜์—ญ์ด๋‹ค.




<textarea>

<textarea>๋Š” ์—ฌ๋Ÿฌ ์ค„์˜ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ํƒœ๊ทธ์ด๋‹ค.

 <textarea name="text" id="textarea" cols="20" rows="10"></textarea>

์ฒ˜์Œ๋ณด๋Š” ์†์„ฑ ๋‘ ๊ฐ€์ง€ cols์™€ rows๊ฐ€ ์žˆ๋‹ค.

  • cols : ๊ธฐ๋ณธ๊ฐ’์€ 20์ธ ์—ด์˜ ๊ฐœ์ˆ˜์ด๋‹ค. ์ฆ‰, ์ž…๋ ฅ์ฐฝ์˜ ๋„“์ด๋ฅผ ๋งํ•œ๋‹ค. ์ด๋Š” ๋ฌธ์ž์˜ ํ‰๊ท ์ ์ธ ๋„“์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ค์ •ํ•œ cols์˜ ๊ฐ’๊ณผ ์ถœ๋ ฅ๋˜๋Š” ๊ฒฐ๊ณผ๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

cols์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์˜์–ด๋Š” ํ•œ ์ค„์— ์ž…๋ ฅ๋œ ๊ธ€์ž ์ˆ˜๋Š” ์„ค์ •๋œ cols๊ฐ’ 20๊ณผ ๋‹ค๋ฅธ 21๊ฐœ, ํ•œ๊ธ€์˜ ๊ฒฝ์šฐ ํ•œ ์ค„์— 15๊ฐœ๊ฐ€ ์ž…๋ ฅ์ด ๋˜์—ˆ๋‹ค. ์ด๋ฅผ ๋ณด๋ฉด ๊ฐ’์ด ๋‹ค๋ฅผ ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

  • rows : ์ž…๋ ฅ์ด ๊ฐ€๋Šฅํ•œ ํ–‰์˜ ์ˆ˜์„ ๋งํ•œ๋‹ค. ์ด ๋˜ํ•œ cols์™€ ๊ฐ™์ด ๋ฌธ์ž์˜ ํ‰๊ท ์ ์ธ ๋†’์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ค์ •ํ•œ rows์˜ ๊ฐ’๊ณผ ์ถœ๋ ฅ๋˜๋Š” ๊ฒฐ๊ณผ๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

rows์˜ ๊ฒฝ์šฐ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์ง€๋งŒ ์˜์–ด/ํ•œ๊ธ€์€ ์„ค์ •ํ•œ rows๊ฐ’๊ณผ ์ผ์น˜ํ•˜๊ฒŒ ์ž…๋ ฅ์ด ๋˜์—ˆ๋‹ค.




<button>

<button>์€ ์ฃผ๋กœ <form>ํƒœ๊ทธ ์•ˆ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํƒœ๊ทธ์ด๋‹ค.

<button type="submit">์ œ์ถœ</button>

<button>์€ ํƒ€์ž…์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ type="submit" type="reset" type="button" ๊ฐ€ ์žˆ๋‹ค.

  • type="submit" : <form>์— ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ ์ œ์ถœํ•˜๋Š” <button>ํƒ€์ž…์ด๋‹ค. type์„ ์„ค์ •ํ•˜์ง€ ์•Š์„ ์‹œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋œ๋‹ค. <input type="submit">๊ณผ ๊ฐ™์€ ๋™์ž‘์„ ํ•œ๋‹ค.
<input type="submit">

<button type="submit">์ œ์ถœ</button>


  • type="reset" : <form>์˜ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๊ฐ’ ๋ชจ๋‘๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. <input type="reset">๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค.

  • type="button": ๊ธฐ๋ณธ ํ–‰๋™์ด ์—†์œผ๋ฉฐ ํด๋ฆญํ–ˆ์„ ๋•Œ ์•„๋ฌด๋Ÿฐ ๋™์ž‘์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ํด๋ผ์ด์–ธํŠธ์ธก ์Šคํฌ๋ฆฝํŠธ์™€ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋œ๋‹ค.


<button>์„ ์‚ฌ์šฉํ•  ๋•Œ ์ฃผ์˜ํ•ด์•ผํ•  ์ ์€ ๋ฐ˜๋“œ์‹œ <button>์€ <form> ํƒœ๊ทธ ์•ˆ์— ์žˆ์–ด์•ผํ•œ๋‹ค.
๋งŒ์•ฝ **<form>๊ฐ€ 2๊ฐœ ์ด์ƒ์ผ ๋•Œ <form> ํƒœ๊ทธ์˜ ๋ฐ”๊นฅ์— ์žˆ์œผ๋ฉด ์–ด๋–ค <form> ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ• ์ง€ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ ์•ˆ์— ์‚ฌ์šฉ**ํ•ด์•ผํ•œ๋‹ค.

<input type="submit/reset">์˜ <button type="submit/reset">์ œ์ถœ</button> ์ฐจ์ด ๐Ÿ“

์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ์„œ๋ฒ„์— ์ œ์ถœํ•˜๊ฑฐ๋‚˜ ์ž…๋ ฅ๋œ ์‚ฌ์šฉ์ž ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ๋™์ž‘์ด ๊ฐ™์œผ๋‹ˆ ์ด ๋‘๊ฐ€์ง€ ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ? ์ด ๋‘˜์˜ ์ฐจ์ด๋ฅผ ์•Œ์•„๋ณด์ž ๐Ÿ˜Ž

์šฐ์„  <input>์€ ๋‹ซํž˜ ํƒœ๊ทธ๊ฐ€ ์—†์–ด ์•ˆ์— ๋‹ค๋ฅธ ์ฝ˜ํ…์ธ  ์ถ”๊ฐ€๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ "์ œ์ถœ"์ด๋ผ๋Š” ์ž„์˜์˜ ํ…์ŠคํŠธ๊ฐ€ ์„ค์ •๋˜์–ด์žˆ๋‹ค. ๋ฌผ๋ก  ์•ˆ์˜ ์ฝ˜ํ…์ธ ๋Š” value๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. <input>์„ ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์„ค์ •ํ•˜๋Š”๋ฐ ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ <button>์€ ๋‹ซํž˜ ํƒœ๊ทธ๊ฐ€ ์žˆ์–ด ์ฝ˜ํ…์ธ ๋ฅผ(ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€ ๋“ฑ) ์ถ”๊ฐ€์™€ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๊ณ  ์Šคํƒ€์ผ์„ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

๋งŽ์€ ๋ถ€๋ถ„์—์„œ ๋ณด์•„ ๋ฒ”์šฉ์„ฑ์ด ๋†’์€ <button>์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.




<datalist> ๐Ÿ“’

<label for="solasystem">์›ํ•˜๋Š” ํ–‰์„ฑ์„ ์„ ํƒํ•˜์„ธ์š” : </label>
      <input type="text" id="solasystem" list="planets" name="planets">
      <datalist id="planets">
          <option value="์ˆ˜์„ฑ">์ˆ˜์„ฑ</option>
          <option value="๊ธˆ์„ฑ">๊ธˆ์„ฑ</option>
          <option value="์ง€๊ตฌ">์ง€๊ตฌ</option>
          <option value="ํ™”์„ฑ">ํ™”์„ฑ</option>
      </datalist>

<datalist>๋„ ๋‚ด๊ฐ€ ์ฒ˜์Œ ๋ณด๋Š” HTML ํƒœ๊ทธ์ด๋‹ค. <datalist>๋Š” <select>์™€ <input>์„ ์„ž์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ํƒœ๊ทธ์ด๋‹ค. <input>์˜ <list> ์†์„ฑ์˜ ๊ฐ’๊ณผ <datalist>์˜ <id>์˜ ๊ฐ’์„ ์ผ์น˜์‹œ์ผœ ์—ฐ๊ฒฐํ•œ๋‹ค.

ํด๋ฆญํ•˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ๋Š” ๊ธฐ๋ณธ์˜ <input>ํƒœ๊ทธ์™€ ๋น„์Šทํ•œ ํ˜•ํƒœ์ด๋ฉฐ ํด๋ฆญํ–ˆ์„ ๋•Œ๋Š” <select>,<option>๊ณผ ์œ ์‚ฌํ•œ ํ˜•ํƒœ์ด๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ <option>์„ ์„ ํƒ์ด ๊ฐ€๋Šฅํ•˜๊ณ  ๋˜ํ•œ ์ง์ ‘ ์ž…๋ ฅ์œผ๋กœ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

ํด๋ฆญํ•˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ์ถœ๋ ฅ๋œ๋‹ค.

ํด๋ฆญํ•œ ์ƒํƒœ๋Š” <select>,<option>๊ณผ ๋น„์Šทํ•œ ํ˜•ํƒœ์˜ ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๊ฐ€ ๋‚˜์˜จ๋‹ค.

name ์†์„ฑ์˜ ์ค‘์š”์„ฑ ๐Ÿ“›

  <form action="" method="post">
    <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>
    <button type="submit">์ œ์ถœ</button>
  </form>

๊ฒŒ์‹œ๊ธ€์„ ๋‚ด๋ฆฌ๋ฉด์„œ ์ž์ฃผ ๋ณด์•˜๋˜ ์†์„ฑ์ด ์žˆ์—ˆ์„ ๊ฒƒ์ด๋‹ค. ๋ฐ”๋กœ name์ด๋‹ค.

name์˜ ์—ญํ• ์€ ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์— ์ „์†กํ•  ๋•Œ ๋ฐ์ดํ„ฐ์˜ key๊ฐ€ ๋˜๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’์€ value๊ฐ€ ๋œ๋‹ค.

์œ„์˜ ์†Œ์Šค ์ฝ”๋“œ์˜ ์ถœ๋ ฅ๊ฐ’๊ณผ ๋ฐ์ดํ„ฐ๋Š” ์•„๋ž˜ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. <input> ์ž„์˜์˜ ์‚ฌ์šฉ์ž ๊ฐ’์„ ์ž…๋ ฅํ–ˆ๋‹ค.
์ž…๋ ฅํ•œ ์ƒํƒœ์—์„œ <button>์„ ๋ˆ„๋ฅด๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก์ด ๋œ ๋‚ด์—ญ์ด ๋‚˜์˜จ๋‹ค.
์ด ๋‚ด์—ญ์€ ๊ฐœ๋ฐœ์ž ๋ฉ”๋‰ด > ๋„คํŠธ์›Œํฌ ํƒญ > index.html ํด๋ฆญ > ํŽ˜์ด๋กœ๋“œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์œ„์—์„œ ๋งํ–ˆ๋“  name ์†์„ฑ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ผ ๋•Œ name ์†์„ฑ์ด ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๊ฐ’์ธ value์˜ ๋ฐ์ดํ„ฐ์˜ key๊ฐ€ ๋œ๋‹ค.

๊ทธ๋ž˜์„œ name์€ ๋ฐ์ดํ„ฐ์˜ ์ •๋ณด๋ฅผ ์œ„ํ•ด์„œ <input>์— ํ•„์ˆ˜์ด๋‹ค.




์˜ค๋Š˜์˜ ์ •๋ฆฌ๋ฅผ ๋งˆ์น˜๋ฉฐ.. ๐Ÿ’ช

์˜ค๋Š˜์€ <form> ํƒœ๊ทธ ์„น์…˜์„ ๋งˆ์ณค๋‹ค.
<form>์€ ์ด๋ฒˆ์— ๋งŒ๋“  "๋กœ๊ทธ์ธ ํŽ˜์ด์ง€"๋ถ€ํ„ฐ "ํšŒ์›๊ฐ€์ž…"๊นŒ์ง€ ๋งŒ๋“ค๋ฉด์„œ ์ต์ˆ™ํ•ด์กŒ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์—ฌ์ „ํžˆ ๋ณต์žกํ•œ ๋Š๋‚Œ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค!

๊ทธ๋ฆฌ๊ณ  ์˜ค๋Š˜ forms๋ฅผ ๋ฐฐ์šฐ๋Š”๋ฐ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ๋…์ด ๋‚˜์˜ค๋Š” ๊ฒƒ ๊ฐ™์•„ ์ด๋ฒˆ ํŒ€์›๋ถ„๋“ค๊ณผ ํ•จ๊ป˜ํ•˜๋Š” HTTP ์Šคํ„ฐ๋””๋Š” ์ •๋ง ์ž˜ํ•œ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค!

์†”์งํžˆ ์†์œผ๋กœ ๋ญ”๊ฐ€ ๋ฐ˜๊ฐ‘๊ณ  ๊ณต๋ถ€๋ฅผ ํ•œ๋‹ค๋Š” ๊ฒƒ์— ๋ฟŒ๋“ฏํ•จ์„ ๋Š๋‚€ ํ•˜๋ฃจ์˜€๋‹ค๐Ÿ˜Š

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ