[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 ์คํฐ๋๋ ์ ๋ง ์ํ ๊ฑฐ๋ผ๊ณ ์๊ฐํ๋ค!
์์งํ ์์ผ๋ก ๋ญ๊ฐ ๋ฐ๊ฐ๊ณ ๊ณต๋ถ๋ฅผ ํ๋ค๋ ๊ฒ์ ๋ฟ๋ฏํจ์ ๋๋ ํ๋ฃจ์๋ค๐
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ([HTML/CSS] Day8. Forms (2) ๐), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@untiring_dev/HTMLCSS-Forms์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค