โ ๋ฒ๊ทธ ๋ฆฌํฌํธ๋ฅผ ๋ฐ์ผ๋ฉด ๋จผ์ ๊ทธ ๋ฒ๊ทธ๋ฅผ ๋ฐ์ผ๋ก ๋๋ฌ๋๊ฒ ํ ์ ์๋ ๋จ์ํ ์คํธ๋ฅผ ์์ฑํ๋ผ. โ
- ํ๋ก๊ทธ๋๋ฐ์ ์์์ด๋ค ์ค

ํผ(Form) ์์
HTML ์์ ๋ธ๋ผ์ฐ์ ์ ๋ด์ฅ ์์๋ฅผ ์ฌ์ฉํ์ฌ ์น ์์์ ๋ํ ์ง์์ ์ ๊ณตํ๋ค. ์๋ฅผ๋ค์ด ์ฐ๋ฆฌ๊ฐ ํน์ ์ฌ์ดํธ์ ๋ก๊ทธ์ธ ํ ๋ ์๋์ ๊ฐ์ด ๊ณ์ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ ํ๋ฉด์ ์๋ ์์ด ๋ง์ด ๋ดค์ ๊ฒ์ด๋ค.

์ด์ฒ๋ผ ํ ์คํธ ํ๋, ์ํธ ํ๋, ํ์ธ๋, ๋ผ๋์ค ๋ฒํผ, ์ ์ถ ๋ฒํผ, ๋ฉ๋ด ๋ฑ๊ณผ ๊ฐ์ ์ปจํธ๋กค์ ํฌํจํ ์์ ํต, ์๋ฒ๋ก ๋์ ์์ด๋, ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํด์ ๋ณด๋ด ์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด ์ ๋ณด๊ฐ ์๊ณ , ์ด๊ฒ์ด ์ผ์นํ๋ฉด ๋ก๊ทธ์ธ์ด ์ฒ๋ฆฌ๋๊ฒ ๋๋ค.

๊ผญ ํ์๊ฐ์ / ๋ก๊ทธ์ธ ๋ฟ๋ง ์๋๋ผ ์ด๋ ๊ฒ ์ฃผ๋ฌธ์ ํ๊ธฐ ์ํด ๋ฐฐ์ก์ง ์ ๋ณด๋ฅผ ๊ธฐ์ฌํ๊ณ ์ ์ถํ๋ ๊ฒ๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค.

์ด๋ ๊ฒ ์นํ์ด์ง์์ ๋ด ์ ๋ณด๋ฅผ ์๋ฒ๋ก ๋ณด๋ด๊ฑฐ๋ ํน์ ์๋ฒ๋ก ๋ณด๋ด์ง ์๋๋ผ๋ ์์ฒด ์นํ์ด์ง์์ ์ฌ์ฉ์์ ์ํธ์์ฉ์ ํ๊ธฐ ์ํด ์
๋ ฅ๊ฐ์ด๋ ๋ฒํผ๊ณผ ๊ฐ์ ์ด๋ฒคํธ ์์๊ฐ ํ์ํ ๋ ์ฌ์ฉ๋๋ HTML์ ํ๊ทธ๊ฐ ๋ฐ๋ก <form> ์ด๋ค.
HTML5 form ์์
HTML์ ํผ์ ์ฌ์ฉ์์ ์น์ฌ์ดํธ ๋๋ ์ดํ๋ฆฌ์ผ์ด์ ์ด ์๋ก ์ํธ ์์ฉํ๋ ๊ฒ ์ค ์ค์ํ ๊ธฐ์ ์ค์ ํ๋์ด๋ค. ํผ์ ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํด์ฃผ๊ธฐ๋ ํ๋ฉฐ ์ด๋ฐ์ ์นํ์ด์ง๊ฐ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ์ฌ ์ฌ์ฉํ ์ ๋ ์๋ค.
HTML์ ํผ์ ์ด์ฉ๋๋ ํ๊ทธ๋ ๋ค์๊ณผ ๊ฐ์ด ๋ช๊ฐ์ง ์๋ค. ํผ ์์๋ ์์ฒด์ ์ผ๋ก ์์์ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ <input>, <label> ๋ฑ๊ณผ ๊ฐ์ ํ์ ์์ ์์๋ฅผ ํฌํจํ๋ ์ปจํ
์ด๋์ด๋ค. ์ด ํ๊ทธ๋ค์ ์กฐํฉํ์ฌ ๋ก๊ทธ์ธ ํ๋ฉด ๊ณผ ๊ฐ์ด ์
๋ ฅ ์์ ํ๋ฉด์ ๊ตฌ์ฑํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
Tag | Description |
์ฌ์ฉ ์ธก์์ ์ ๋ ฅ์ ์ ๋ ฅํ๋ HTML ์์์ ์ ์ | |
์ ๋ ฅ ์ปจํธ๋กค์ ์ ์ | |
๋ค์ค ๋ผ์ธ ์ ๋ ฅ ์ปจํธ๋กค์ ์ ์ | |
์ ๋ ฅ ์์์ ๋ ์ด๋ธ์ ์ ์ | |
๊ด๋ จ ์์๋ฅผ ์์์ผ๋ก ๊ทธ๋ฃนํ | |
<fieldset> ์์์ ๋ํ ์บก์ ์ ์ ์ | |
๋๋กญ๋ค์ด ๋ชฉ๋ก์ ์ ์ | |
๋๋กญ๋ค์ด ๋ชฉ๋ก์์ ๊ด๋ จ ์ต์ ๊ทธ๋ฃน์ ์ ์ | |
๋๋กญ๋ค์ด ๋ชฉ๋ก์์ ์ต์ ์ ์ ์ํฉ | |
ํด๋ฆญ ๊ฐ๋ฅํ ๋ฒํผ์ ์ ์ํฉ |
<form> ํ๊ทธ
- ์ ๋ ฅ ์์ ์ ์ฒด๋ฅผ ๊ฐ์ธ๋ ํ๊ทธ
- form์ ์ปจํธ๋กค ์์(control element)๋ก ๊ตฌ์ฑ๋๋ค.
Form ํ๊ทธ์ ์์ฑ | ์ค๋ช |
method | ์ ์ก ๋ฐฉ์ ์ ํ - get : 256~4096 byte๊น์ง๋ง ์ ์ก ๊ฐ๋ฅ - post : ์ ๋ ฅ ๋ด์ฉ์ ๊ธธ์ด์ ์ ํ X |
name | form์ ์ด๋ฆ ์๋ฒ๋ก ์ ์ถ๋ ํผ ๋ฐ์ดํฐ(form data)๋ฅผ ์ฐธ์กฐํ๊ธฐ ์ํด ์ฌ์ฉ |
action | form์ ์ ์กํ ์๋ฒ ์ชฝ์ script ํ์ผ์ ์ง์ ์ ์ก๋๋ ์๋ฒ url ๋๋ html ๋งํฌ |
target | action์์ ์ง์ ํ script ํ์ผ์ ํ์ฌ ์ฐฝ์ด ์๋ ๋ค๋ฅธ ์์น์ ์ด๋๋ก ์ง์ |
autocomplete | ์๋ ์์ฑ. on์ผ๋ก ๋ช ์ํ๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ์ฌ์ฉ์๊ฐ ์ด์ ์ ์ ๋ ฅํ๋ ๊ฐ๋ค์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ๊ณผ ๋น์ทํ ๊ฐ๋ค์ ๋๋กญ๋ค์ด ์ต์ ์ผ๋ก ๋ณด์ฌ์ค๋ค. |
enctype | ํผ ๋ฐ์ดํฐ(form data)๊ฐ ์๋ฒ๋ก ์ ์ถ๋ ๋ ํด๋น ๋ฐ์ดํฐ๊ฐ ์ธ์ฝ๋ฉ๋๋ ๋ฐฉ๋ฒ์ ๋ช
์ - application/x-www-form-urlencoded ๊ธฐ๋ณธ๊ฐ์ผ๋ก, ๋ชจ๋ ๋ฌธ์๋ค์ ์๋ฒ๋ก ๋ณด๋ด๊ธฐ ์ ์ ์ธ์ฝ๋ฉ๋จ์ ๋ช ์ํจ. - multipart/form-data ๋ชจ๋ ๋ฌธ์๋ฅผ ์ธ์ฝ๋ฉํ์ง ์์์ ๋ช ์ํจ. ์ด ๋ฐฉ์์ <form> ์์๊ฐ ํ์ผ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์๋ฒ๋ก ์ ์กํ ๋ ์ฃผ๋ก ์ฌ์ฉํจ. - text/plain ๊ณต๋ฐฑ ๋ฌธ์(space)๋ "+" ๊ธฐํธ๋ก ๋ณํํ์ง๋ง, ๋๋จธ์ง ๋ฌธ์๋ ๋ชจ๋ ์ธ์ฝ๋ฉ๋์ง ์์์ ๋ช ์ํจ. |
novalidate | ํผ ๋ฐ์ดํฐ(form data)๋ฅผ ์๋ฒ๋ก ์ ์ถํ ๋ ํด๋น ๋ฐ์ดํฐ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ์ง ์์์ ๋ช ์ |
<!-- /action_page.php ๋ก get ๋ฐฉ์์ผ๋ก ํ๊ทธ ๋ด์ ์
๋ ฅ๊ฐ๋ค์ ์ ์ถ -->
<form name="profile" action="/action_page.php" method="get" autocomplete="on">
<input type="text" name="id"> <!-- ์
๋ ฅ๋ -->
<select> <!-- ๋๋กญ๋ค์ด ๋ฉ๋ด -->
<option value="blue">red</option>
<option value="blue">blue</option>
<option value="blue">green</option>
</select>
<input type="submit" value="Submit"> <!-- ์๋ฒ ์ ์ถ ๋ฒํผ -->
</form>
์ ์ถ(submit) ๋ฒํผ์ ํด๋ฆญํ๋ฉด input ํ๊ทธ์ ์ ๋ ฅ๋ ๊ฐ๊ณผ select, option ํ๊ทธ์ ์ ํ๋ ๋ฉ๋ด๊ฐ์ด form ํ๊ทธ์ method ์์ฑ์ ์ง์ ๋ ๋ฐฉ์(get)์ผ๋ก action ์์ฑ์ ์ง์ ๋ ์๋ฒ์ธก์ ์ฒ๋ฆฌ ๋ก์ง(/action_page.php)์ ์ ๋ฌ๋๊ฒ ๋๋ค. ๊ทธ๋ฌ๋ฉด ์๋ฒ์์ name ์์ฑ์ผ๋ก ์ง์ ๋ ์ด๋ฆ์ผ๋ก ๋ณ์๊ฐ์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ป์ด ์ฒ๋ฆฌ๋ฅผ ํ๋ ๊ฒ์ด๋ค. (์์ ์์ ๋ ์๋ฒ ์ค์ ์ด ์์ผ๋ ์ค์ ๋ก ์ ์ถ๋์ง๋ ์๋๋ค)
์ด์ฒ๋ผ <form> ํ๊ทธ๋ ์ฌ์ฉ์์ ์ํธ์์ฉํ ์
๋ ฅ๋์ด๋ ๋ฉ๋ด, ๋ฒํผ ํ๊ทธ๋ค์ ์ ์ํ๊ณ ์ด๋ฅผ ๋ฌถ๊ณ ์ด๋์ ์ด๋ป๊ฒ ์ธ์ ์ ์ถํ ์ง ํ๊ทธ ์์ฑ์ผ๋ก ์ง์ ํ๋ ๊ฒ์ผ๋ก ๋ณด๋ฉด ๋๋ค.
form ์์๋ฅผ ์ฌ์ฉํ ๋ ์ฃผ์ํ ์ฌํญ์ผ๋ก๋<form></form>ํ๊ทธ ์ฌ์ด์๋ ๋ค๋ฅธ<form>ํ๊ทธ๊ฐ ์ฝ์ ์ด ์๋๋ฉฐ,<form>์ ์ด๋ฆ ์์ฑ์ ํ ํ์ด์ง์์ ์ค๋ณตํ์ฌ ์ฌ์ฉํ๋ฉด ์ ๋๋ค.
<input> ํ๊ทธ
- ์ฌ์ฉ์๊ฐ ์ ๋ณด๋ฅผ ์ ๋ ฅํ๋ ๋ถ๋ถ์ ๋ง๋ค์ด์ผ ํ ๋ ์ฌ์ฉ
- type์ ๋ฐ๋ผ ์ด๋ค ํ์์ผ๋ก ํผ ์์์ ์ ํ ์ง ๊ฒฐ์ ํ๋ค (๋ฒํผ / ์ด๋ฉ์ผ ์ ๋ ฅ / ๋น๋ฐ๋ฒํธ ์ ๋ ฅ ..๋ฑ)
- ์๋ ํ์์ ๋นจ๊ฐ์์ผ๋ก ์น ์์ฑ์ด ์ฃผ๋ก ์ฐ์ธ๋ค๊ณ ๋ณด๋ฉด ๋๋ค
input ์์ฑ | ์ค๋ช |
readonly | ์ฝ๊ธฐ ์ ์ฉ ํ๋๋ก ๋ง๋ค๊ธฐ |
placeholder | ํํธ ํ์(ํ๋ ํด๋ฆญ์ ๋ด์ฉ ์ฌ๋ผ์ง) |
autofocus | ํ์ด์ง๋ฅผ ๋ถ๋ฌ์ค์ ๋ง์ ํน์ ๋ถ๋ถ์ ๋ง์ฐ์ค ์ปค์๊ฐ ํ์๋๋๋ก ํ๋ ๊ฒ |
autocomplete | ์๋์์ฑ ์ค์ |
max / min | <input> ํ๋์ ์ต๋๊ฐ๊ณผ ์ต์๊ฐ ์ง์ |
maxLength | ํ ์คํธ ํ๋์ ์ต๋๋ก ์ ๋ ฅํ ์ ์๋ ๋ฌธ์์ ๊ฐ์ ์ง์ |
step | ์ซ์์ ๊ฐ๊ฒฉ ์ค์ <input> ์ด date, datetime, datetime-local, month, week,time, number, range์ผ ๊ฒฝ์ฐ๋ง ์ฌ์ฉ๊ฐ๋ฅ |
required | ํ์ ์ ๋ ฅ ํ๋ ์ง์ (๋น์นธ์ด๋ฉด ์ ๋์ด๊ฐ) |
type โญ | input ํ๊ทธ์ ํ์
์ ์ง์ ๋จ์ํ ํ ์คํธ์ ๋ ฅ์ฐฝ์ธ์ง ์ด๋ฉ์ผ, ์ ํ๋ฒํธ ์์ ํน์ ํ์ผ์ฒจ๋ถ, ๋์์ ์ฒจ๋ถ ์ธ์ง |
<form>
First name :<br>
<input type="text" name="firstname" maxLength="3" required><br> <!-- ํ์์
๋ ฅ + 3์ ์ ํ -->
Last name :<br>
<input type="text" name="lastname"><br>
๋ณ๋ช
:<br>
<input type="text" name="alias" placeholder="์์์ ์๋ต"> <!-- ํํธ ํ์ -->
</form>
input์ type ์์ฑ ์ข ๋ฅ
HTML <input> ์์ ์ค์ ๊ฐ์ฅ ์ค์ํ ์์ฑ์ type ์์ฑ์ด๋ค. ์ด type์ด ์ด๋ค ๊ฒ์ด๋์ ๋ฐ๋ผ ๊ทธ๋ฅ ๋ฒํผ์ด ๋ ์๋ ์๊ณ ์
๋ ฅ ํ
์คํธ๋์ด ๋ ์๋ ์๊ณ ๋ผ๋์ค ๋ฒํผ์ด ๋ ์๋ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ์
๋ ฅ๋์ด๋ผ๋ ์ด๋ฉ์ผ ์
๋ ฅ์ธ์ง ์ ํ๋ฒํธ ์
๋ ฅ์ธ์ง ๋น๋ฐ๋ฒํธ ์
๋ ฅ์ธ์ง ๋ชจ๋ ๊ตฌ๋ถํ์ฌ, ์
๋ ฅ์ด ์๋ชป๋ ๊ฒฝ์ฐ ์๋ด ๋ฉ์ธ์ง๋ฅผ ๋์ฐ๋, ์ฌ์ฉ์์ ์ํธ์์ฉ ์์๋ฅผ ๋ณด๋ค ๋ฐ์ด๋๊ฒ ํด์ค ์ ๋ ์๋ค.

input type ์์ฑ | ์ค๋ช |
hidden | ์๋ฒ๋ก ๋ณด๋ด๋ ๊ฐ๋ค์ ๋ณด๋ด๋ ํ๋(์ฌ์ฉ์์๊ฒ๋ ๋ณด์ด์ง X) |
text | ํ ์ค์ง๋ฆฌ ํ
์คํธ๋ฅผ ์
๋ ฅํ ์ ์๋ ํ
์คํธ ์์ <input type="text" value="write email or phone number" size="10" maxlength="5" /> |
search | ๊ฒ์์์ (ํฌ๋กฌ์ด๋ ์ฌํ๋ฆฌ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ ํฌ๋ก์ค๋ธ๋ผ์ฐ์ง์ด ์๋๊ธฐ์ ์ ์ฌ์ฉํ์ง๋ ์๋๋ค.) |
tel | ์ ํ๋ฒํธ ์
๋ ฅ ํ๋ <input type="tel" /> |
url | URL ์ฃผ์๋ฅผ ์
๋ ฅ ํ๋ <input type="url" /> |
๋ฉ์ผ์ฃผ์ ์
๋ ฅ ํ๋ '@' ๊ฐ ๋ค์ด๊ฐ ์ด๋ฉ์ผ ํ์์ธ์ง ๊ฒ์ฌํด์ค๋ค. <input type="email" id="useremail" name="useremail" /> |
|
password | ๋น๋ฐ๋ฒํธ ์
๋ ฅ ํ๋ <input name="password" required type="password" placeholder="Password" /> |
number | ์ซ์๋ฅผ ์กฐ์ ํ ์ ์๋ ํ์ดํ |
range | ์ซ์ ๋ฒ์๋ฅผ ์กฐ์ ํ ์ ์๋ ์ฌ๋ผ์ด๋ ๋ง๋ min ๊ณผ max๋ก ๋ฒ์๋ฅผ ์ง์ ํ๊ณ step ์ผ๋ก ์ฆ๊ฐ ๊ฐ์ ์ธํ ํ ์ ์๋ค. ์ฐธ๊ณ ๋ก ๊ธฐ๋ณธ ์ธํ ์ ํ๋์์ผ๋ก ๋์ด์๋๋ฐ, CSS๋ก ์ปค์คํฐ๋ง์ด์ง์ ํ ์ ์๋ค. ๋ค๋ง ๊ฐ ๋ธ๋ผ์ฐ์ ๋ง๋ค ๊ฐ๋ฅํ ์ ๋๊ฐ ๋ค๋ฅด๋ ํ์ธํ ํ์๊ฐ ์๋ค. <input type="range" id="volume" name="volume" min="0" max="11" /> |
color | ์์ํ |
checkbox | ์ฒดํฌ๋ฐ์ค (2๊ฐ์ด์ ์ ํ ๊ฐ๋ฅ) <input type="checkbox" id="cookie" name="cookie" checked> <label for="cookie">Cookie</label> |
radio | ๋ผ๋์ค ๋ฒํผ (1๊ฐ๋ง ์ ํ ๊ฐ๋ฅ) <input type="radio" id="apple" name="drone" value="apple" checked> <label for="huey">Apple</label> |
datetime | ๊ตญ์ ํ์ค์(UTC)๋ก ์ค์ ๋ ๋ ์ง์ ์๊ฐ(์ฐ, ์, ์ผ, ์, ๋ถ, ์ด, ๋ถํ ์ด) |
datetime-local | ์ฌ์ฉ์๊ฐ ์๋ ์ง์ญ์ ๊ธฐ์ค์ผ๋ก ํ ๋ ์ง์ ์๊ฐ(์ฐ, ์, ์ผ, ์, ๋ถ, ์ด, ๋ถํ ์ด) |
date | ์ฌ์ฉ์ ์ง์ญ์ ๊ธฐ์ค์ผ๋ก ํ ๋ ์ง(์ฐ, ์, ์ผ) <input type="date" id="start" name="trip-start" value="2018-07-22" min="2018-01-01" max="2018-12-31"> |
month | ์ฌ์ฉ์ ์ง์ญ์ ๊ธฐ์ค์ผ๋ก ํ ๋ ์ง(์ฐ, ์) |
week | ์ฌ์ฉ์ ์ง์ญ์ ๊ธฐ์ค์ผ๋ก ํ ๋ ์ง(์ฐ, ์ฃผ) |
time | ์ฌ์ฉ์ ์ง์ญ์ ๊ธฐ์ค์ผ๋ก ํ ์๊ฐ(์, ๋ถ, ์ด, ๋ถํ ์ด) |
button | ๋ฒํผ์ ๋ง๋ค์ด ํด๋ฆญํ์ ๋ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํฌ ์ ์๋ค. Submit๊ณผ๋ ์ฐจ์ด๊ฐ ์๋ค. JavaScript๋ฅผ ์ฌ์ฉํด ํจ๊ณผ๋ฅผ ๋ง๋ค๋ฉด ๋๋ค. <input type="button" value="์ ์ฐฝ ์ด๊ธฐ" onclick="window.open()" /> |
file | ํ์ผ์ ์ฒจ๋ถํ ์ ์๋ ๋ฒํผ (accept๋ฅผ ์ฌ์ฉํด ์ ์ถ ๊ฐ๋ฅํ ํ์ผ ์์์ ์ง์ ํ ์๋ ์๋ค.) <input type="file" accept=".doc,.docx" /> |
submit | ์๋ฒ์ ์ก ๋ฒํผ <input type="submit" value="Log In" /> |
image | submit ๋ฒํผ ๋์ ์ฌ์ฉํ ์ด๋ฏธ์ง |
reset | ๋ฆฌ์
๋ฒํผ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ชจ๋ ์ ๋ณด๋ฅผ ์ง์ธ ์ ์๋ค. ํด๋น Form์ ์ ๋ ฅํ๋ ๋ด์ฉ๋ค์ ์ฒ์๋ถํฐ ์ ๋ ฅํ๊ณ ์ถ์ ๋ ํ์ฉํจ. <input type="reset" /> |
<h3>button</h3>
<input type="button" value="Click me" onclick="alert('Hello world!')">
<hr>
<h3>checkbox</h3>
<input type="checkbox" name="fruit1" value="apple" checked> ์ฌ๊ณผ<br>
<input type="checkbox" name="fruit2" value="grape"> ํฌ๋<br>
<input type="checkbox" name="fruit3" value="peach"> ๋ณต์ญ์<br>
<hr>
<h3>color</h3>
<input type="color" name="mycolor">
<hr>
<h3>date</h3>
<input type="date" name="birthday">
<hr>
<h3>datetime</h3>
<input type="datetime" name="birthdaytime">
<hr>
<h3>datetime-local</h3>
<input type="datetime-local" name="birthdaytime">
<hr>
<h3>email</h3>
<input type="email" name="useremail">
<hr>
<h3>file</h3>
<input type="file" name="myfile">
<hr>
<h3>hidden</h3>
<input type="hidden" name="country" value="Norway">
hidden filed๋ ์ฌ์ฉ์์ ํ์๋์ง ์๋๋ค.
<hr>
<h3>image</h3>
<input type="image" src="img/img_submit.gif" alt="Submit" width="48" height="48">
<hr>
<h3>month</h3>
<input type="month" name="birthdaymonth">
<hr>
<h3>number</h3>
<input type="number" name="quantity" min="2" max="10" step="2" value="2">
<hr>
<h3>password</h3>
<input type="password" name="pwd">
<hr>
<h3>radio</h3>
<input type="radio" name="gender" value="male" checked> ๋จ์<br>
<input type="radio" name="gender" value="female"> ์ฌ์<br>
<hr>
<h3>range</h3>
<input type="range" name="points" min="0" max="10" step="1" value="5">
<hr>
<h3>reset</h3>
<input type="reset">
<hr>
<h3>search</h3>
<input type="search" name="googlesearch">
<hr>
<h3>submit</h3>
<input type="submit" value="Submit">
<hr>
<h3>tel</h3>
<input type="tel" name="mytel">
<hr>
<h3>text</h3>
<input type="text" name="myname">
<hr>
<h3>time</h3>
<input type="time" name="mytime">
<hr>
<h3>url</h3>
<input type="url" name="myurl">
<hr>
<h3>week</h3>
<input type="week" name="week_year">
<textarea> ํ๊ทธ
- textarea ์์๋ input ์์์ "text" ํ์ ๊ณผ ๋น์ทํ ํํ์ด๋ค. ํ์ง๋ง "text" ํ์ ์ input ์์๋ ํ ์ค๋ง ์ ๋ ฅ์ด ๊ฐ๋ฅํ์ง๋ง, <textarea> ํ๊ทธ๋ ์ฌ๋ฌ ์ค์ ๊ธด ๋ด์ฉ์ ์ ๋ ฅํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
- ํ ์คํธ ์ฐฝ์ ๋๋น์ ๋์ด๋ HTML์์๋ cols, rows ์์ฑ์ผ๋ก, CSS์์๋ width์ height ๊ฐ์ผ๋ก ์ง์ ํ ์๋ ์๋ค.
- form ํ๊ทธ์ ํจ๊ป ์ฌ์ฉํด ๊ฐ์ํ, ์๊ธฐ์๊ฐ์ ์ ์ถ ๋ฑ์ ์ฉ๋๋ก ์ฌ์ฉํ ์ ์๋ค.
textarea ์์ฑ | ์ค๋ช |
autofocus | ํ์ด์ง๊ฐ ๋ก๋๋ ๋ ์๋์ผ๋ก ํฌ์ปค์ค๊ฐ <textarea> ์์๋ก ์ด๋๋จ์ ๋ช ์ํจ. |
cols | ํ ์คํธ ์ ๋ ฅ ์์ญ ์ค ๋ณด์ด๋ ์์ญ์ ๋๋น๋ฅผ ๋ช ์ํจ. |
dirname | ํผ ๋ฐ์ดํฐ(form data)๊ฐ ์๋ฒ๋ก ์ ์ถ๋ ๋ ์๋ฒ๋ก ๋ณด๋ผ ํ ์คํธ ์ ๋ ฅ ์์ญ์ ํ ์คํธ ๋ฐฉํฅ์ฑ(text directionality)์ ์ ์ฅํ ์ด๋ฆ์ ๋ช ์ํจ. (์ธ์ ๋ ์ด๋ฆ ๋ค์ โ.dirโ๋ฅผ ์ถ๊ฐํจ) |
disabled | ํด๋น <textarea> ์์๊ฐ ๋นํ์ฑํ๋จ์ ๋ช ์ํจ. |
form | ํด๋น <textarea> ์์๊ฐ ํฌํจ๋ ํ๋ ์ด์์ <form> ์์๋ฅผ ๋ช ์ํจ. |
maxlength | <textarea> ์์์์ ํ์ฉ๋๋ ์ต๋ ๋ฌธ์์๋ฅผ ๋ช ์ํจ. |
name | <textarea> ์์์ ์ด๋ฆ์ ๋ช ์ํจ. |
placeholder | <textarea> ์์์ ์ ๋ ฅ๋ ๊ฐ์ ๋ํ ์งง์ ํํธ๋ฅผ ๋ช ์ํจ. |
readonly | <textarea> ์์์ ํ ์คํธ ์ ๋ ฅ ์์ญ์ด ์ฝ๊ธฐ ์ ์ฉ์์ ๋ช ์ํจ. |
required | ํผ ๋ฐ์ดํฐ(form data)๊ฐ ์๋ฒ๋ก ์ ์ถ๋๊ธฐ ์ ํ ์คํธ ์ ๋ ฅ ์์ญ์ด ๋ฐ๋์ ์ฑ์์ ธ ์์ด์ผ ํจ์ ๋ช ์ํจ. |
rows | ํ ์คํธ ์ ๋ ฅ ์์ญ ์ค ๋ณด์ด๋ ์์ญ์ ๋ผ์ธ์๋ฅผ ๋ช ์ํจ. |
wrap | ํผ ๋ฐ์ดํฐ(form data)๊ฐ ์๋ฒ๋ก ์ ์ถ๋ ๋ ์ ๋ ฅ๋ ํ ์คํธ์ ์ค๋ฐ๊ฟ(wrap) ๋ฐฉ์์ ๋ช ์ํจ. |
<form action="/examples/media/action_target.php" method="get">
<textarea name="opinion" cols="30" rows="5" placeholder="์ฌ๊ธฐ์ ์จ์ฃผ์ธ์~">
</textarea>
<br>
<input type="submit">
</form>
<label> ํ๊ทธ
- ๋ ์ด๋ธ(label) ๊ทธ ์์ฒด๋ก๋ ํจ๊ณผ๊ฐ ์์ง๋ง, input ํ๊ทธ๋ฅผ ์ ์ดํ์ฌ ์ํ๊ฐ์ ๋ณ๊ฒฝ ํ๋๋ก ๋๋ ์ญํ ์ ํ๋ค
- ๋ ์ด๋ธ ํ๊ทธ๋ฅผ ํด๋ฆญํ๋ฉด ํ ์คํธ ์ปจํธ๋กค์ ์ด์ ์ด ๋ง์ถฐ์ ธ ์ฌ์ฉ์ฑ์ด ๋์์ง๋ค. ํนํ ๋ชจ๋ฐ์ผ์ด๋ ํ๋ธ๋ฆฟ ํ๊ฒฝ์์ ๊ฐ์ ์ ๋ฐํ๋ค.

<form name="selectFruit">
<!-- ์ฒดํฌ๋ฐ์ค๋ฅผ ๋๋ฌ์ผ ์ฒดํฌ๊ฐ ๋๋ค -->
<input type="checkbox" /> ๋ฐ๋๋
<br>
<!-- ๋ ์ด๋ธ์ด ์๋ค๋ฉด ํ
์คํธ ์์ญ์ ํด๋ฆญํด๋ ์ฒดํฌ๊ฐ ๋๋ค -->
<label>
<input type="checkbox" /> ๋ฐ๋๋
</label>
</form>
๋ ์ด๋ธ ๋ถ๋ฆฌ
๋ง์ผ ์คํ์ผ๋ก ์ธํด ์์ ๊ฐ์ด <label> ์์ <input> ํ๊ทธ๊ฐ ์์นํ๋ ํ์์ ์ทจํ ์ ์๊ณ ๋ฐ๋ก ๋ถ๋ฆฌํด์ผ ํ๋ค๋ฉด, <label> ํ๊ทธ์ for ์์ฑ์ ํตํด <input> ํ๊ทธ์ ๋งคํ ์ํฌ ์ ์๋ค.
์๋ ์ฝ๋๋ โlabel ํ๊ทธ์์ ์์ญ์ ํด๋ฆญํ ๊ฒฝ์ฐ for ์์ฑ์ด ์ง์ ๋ fruititem ์ด๋ผ๋ id ๊ฐ์ ์ฐพ๊ฒ ๋๋ค. ์ฆ ์๋์ input ํ๊ทธ๊ฐ ์๊ฒฉ์ผ๋ก, ์๋์ผ๋ก ํด๋ฆญํ ๊ฒ๊ณผ ๊ฐ์ด ๋์ํ๊ฒ ๋๋ค.
<!-- for ์์ฑ์ ํตํด ํ๊ทธ๋ฅผ ๋ถ๋ฆฌํ ์๋ ์๋ค -->
<input id="fruitItem" type="checkbox" />
<label for="fruitItem">๋ฐ๋๋</label>
<select> & <option> ํ๊ทธ
- ๋๋กญ ๋ฉ๋ด์์ ์ ํ์ ํ ์ ์๋ ์์์ ์์ฑ
<select>์์ ๋ด๋ถ์<option>์์๋ ๋๋กญ๋ค์ด ๋ฆฌ์คํธ(drop-down list)์์ ์ฌ์ฉ๋๋ ๊ฐ๊ฐ์ ์ต์ ์ ์ ์
์์ฑ๋ช | ์ค๋ช |
autofocus | ํ์ด์ง๊ฐ ๋ก๋๋ ๋ ์๋์ผ๋ก ํฌ์ปค์ค(focus)๊ฐ ๋๋กญ๋ค์ด ๋ฆฌ์คํธ๋ก ์ด๋๋จ์ ๋ช ์ํจ. |
disabled | ํด๋น ๋๋กญ๋ค์ด ๋ฆฌ์คํธ๊ฐ ๋นํ์ฑํ๋จ์ ๋ช ์ํจ. |
form | ํด๋น ๋๋กญ๋ค์ด ๋ฆฌ์คํธ๊ฐ ํฌํจ๋ ํ๋ ์ด์์ <form> ์์๋ฅผ ๋ช ์ํจ. |
multiple | ์ฌ์ฉ์๊ฐ ํ ๋ฒ์ ๋ ๊ฐ ์ด์์ ์ต์ ์ ์ ํํ ์ ์์์ ๋ช ์ํจ. |
name | ๋๋กญ๋ค์ด ๋ฆฌ์คํธ์ ์ด๋ฆ์ ๋ช ์ํจ. |
required | ํผ ๋ฐ์ดํฐ(form data)๊ฐ ์๋ฒ๋ก ์ ์ถ๋๊ธฐ ์ ์ฌ์ฉ์๊ฐ ๋ฐ๋์ ๋๋กญ๋ค์ด ๋ฆฌ์คํธ์ ๊ฐ์ ์ ํํด์ผ ํจ์ ๋ช ์ํจ. |
size | ๋๋กญ๋ค์ด ๋ฆฌ์คํธ์์ ํ ๋ฒ์ ๋ณด์ผ ์ต์ ์ ๊ฐ์๋ฅผ ๋ช ์ํจ. |
<label for="pet-select">Choose a pet:</label>
<br />
<select name="pets" id="pet-select">
<option value="">--Please choose an option--</option>
<option value="dog">Dog</option>
<option value="cat">Cat</option>
<option value="hamster">Hamster</option>
<option value="parrot">Parrot</option>
<option value="spider">Spider</option>
<option value="goldfish">Goldfish</option>
</select>
<option>ํ๊ทธ์์ ์ฌ์ฉํ๋ value ์์ฑ์ ํ ์คํธ ํ๋์์์ value ์์ฑ๊ณผ๋ ์กฐ๊ธ ํ๋ฆฌ๋ค. ํ ์คํธ ํ๋์์ value ์์ฑ์ ๊ฐ์ ์ ๋ ฅํ๋ฉด ๊ธฐ๋ณธ๊ฐ์ด ์ ๋ ฅ๋์ง๋ง<option>ํ๊ทธ์ ๊ฒฝ์ฐ๋ ์ด ๋ชฉ๋ก์ด ์ ํ๋ ๊ฒฝ์ฐ ์ ์ก๋๋ ๊ฐ์ ์ง์ ํ๋ ๊ฒ์ด๋ค.
์ฝค๋ณด๋ฐ์ค ๊ธฐ๋ณธ๊ฐ ์ง์
<label for="pet-select">Choose a pet:</label><br />
<select name="pets" id="pet-select">
<option value="">--Please choose an option--</option>
<option value="dog">Dog</option>
<option value="cat">Cat</option>
<option value="hamster" selected>Hamster</option> <!-- ๊ธฐ๋ณธ๊ฐ์ ํ์คํฐ๋ก ์๋ ์ค์ -->
<option value="parrot">Parrot</option>
<option value="spider">Spider</option>
<option value="goldfish">Goldfish</option>
</select>
ํน์ ํญ๋ชฉ ์ ํ ๊ธ์ง
<label for="pet-select">Choose a pet:</label><br />
<select name="pets" id="pet-select">
<option value="">--Please choose an option--</option>
<option value="dog">Dog</option>
<option value="cat">Cat</option>
<option value="hamster">Hamster</option>
<option value="parrot">Parrot</option>
<option value="spider" disabled>Spider</option> <!-- ๊ฑฐ๋ฏธ๋ ์ ํ์ด ์๋๋๋ก ์ฒ๋ฆฌ -->
<option value="goldfish">Goldfish</option>
</select>
๋ง์ผ ์์ ํ ๋ชฉ๋ก์์ ์์ ๊ณ ์ถ์๋ฐ ํ๊ทธ๋ ๋จ๊ฒจ๋๊ณ ์ถ๋ค๋ฉด hidden ์์ฑ์ ์จ์ฃผ๋ฉด ๋๋ค.
์ฝค๋ณด๋ฐ์ค ๋ค์ค ์ ํ
<select>ํ๊ทธ์ size ์์ฑ์ ์ง์ ํด ์ฃผ๋ฉด ๋๋กญ๋ค์ด ํํ๊ฐ ์๋, ์ ํ ๋ชฉ๋ก์ด ์ง์ ๋ ํฌ๊ธฐ๋งํผ ๋ณด์ฌ์ง๊ฒ ๋๋ค.
๋ง์ผ ํญ๋ชฉ์ ๊ฐฏ์๋ณด๋ค size๊ฐ ์์ผ๋ฉด ์๋์ผ๋ก ์คํฌ๋กค์ด ์์ฑ๋๋ค.<select>ํ๊ทธ์ multiple ์์ฑ์ ์ง์ ํด ์ฃผ๋ฉด 'shift' ๋๋ 'ctrl' ํค๋ฅผ ๋๋ฅด๊ณ ํญ๋ชฉ์ ์ ํํ๋ฉด ์ค๋ณต์ผ๋ก ํญ๋ชฉ ์ ํ์ด ๊ฐ๋ฅํ๊ฒ ๋๋ค.
<label for="pet-select">Choose a pet:</label><br />
<!-- ๋ชฉ๋ก ์ฌ์ด์ฆ๊ฐ 4์ค + shift๋ก ๋ค์ค ์ ํ -->
<select name="pets" id="pet-select" size=4 multiple>
<option value="dog">Dog</option>
<option value="cat">Cat</option>
<option value="hamster">Hamster</option>
<option value="parrot">Parrot</option>
<option value="spider">Spider</option>
<option value="goldfish">Goldfish</option>
</select>
์ฝค๋ณด๋ฐ์ค ๊ทธ๋ฃน ์ง์
<optgroup>ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชฉ๋ก์ ๊ทธ๋ฃนํ ํ์ฌ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ๊ตฌ๋ถํ์ฌ ๋ณด์ฌ์ค๋ค.<optgroup>์ label ์์ฑ์๋ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ๊ตฌ๋ถํ ๋ ๋ณด์ฌ์ค text๋ฅผ ๋ฃ์ด์ค๋ค.
<label for="pet-select">Choose a pet:</label><br />
<select name="pets" id="pet-select">
<option value="">--Please choose an option--</option>
<optgroup label="ํฌ์ ๋ฅ"> <!-- ์ ํ๋ชฉ๋ก ๊ทธ๋ฃน -->
<option value="dog">Dog</option>
<option value="cat">Cat</option>
<option value="hamster">Hamster</option>
</optgroup>
<optgroup label="์กฐ๋ฅ">
<option value="parrot">Parrot</option>
</optgroup>
<optgroup label="๋ฌผ๊ณ ๊ธฐ">
<option value="goldfish">Goldfish</option>
<option value="spider">Shark</option>
</optgroup>
</select>
<datalist> ํ๊ทธ
- ์์
<select>ํ๊ทธ๋ ์ค๋ก์ง ์ ํ๋ง ํ ์ ์๋ ๋ฐ๋ฉด,<datalist>๋ ๋ฆฌ์คํธ์์ ์ด๋ ํ๊ฐ์ง๋ฅผ ์ ํํ๊ฑฐ๋ ํค์๋์ ์ ๋ ฅํ ์ ์๋ค๋ ์ฐจ์ด์ ์ด ์๋ค
<!-- <input>์ list ์์ฑ๊ฐ๊ณผ <datalist>์ id๋ช
์ ๋๊ฐ์ด ๋ง์ถฐ์ฃผ์ด์ผ ๋์๋๋ค. -->
<label for="movie">What is your favourite Browser?</label>
<input type="text" list="browsers"/>
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
<feildset> & <legend> ํ๊ทธ
- fieldset ํ๊ทธ๋ ๊ด๋ จ๋ ์ ๋ ฅ ์์๋ค์ ๊ทธ๋ฃนํํ ๋ ์ฌ์ฉํ๋ค.
- legend ํ๊ทธ๋ fieldset ํ๊ทธ ๋ด์์ ์ฌ์ฉ๋์ผ ํ๋ฉฐ ๊ทธ๋ฃนํ๋ fieldset์ ์ ๋ชฉ์ ์ ์ํ๋ค.
<form>
<fieldset>
<legend> Login </legend>
ID : <input type="text" /> <br>
password : <input type="password" />
</fieldset>
<br>
<fieldset>
<legend> Login 2 </legend>
E-mail : <input type="e-mail" /> <br>
password : <input type="password" />
</fieldset>
</form>
<button> ํ๊ทธ
- ๋ฒํผ ์์. ํ์ด์ง์ ๋ฒํผ์ ๋ฃ๊ณ form์ ์ ์กํ๊ฑฐ๋ reset ํ ๋ ์ฌ์ฉํ๋ค.
button type ์์ฑ | ์ค๋ช |
submit | form ์ ์ถ <button type="submit"> ์ ์ก </button> |
reset | from ๋ฆฌ์
<button type="reset"> ๋ค์์ฐ๊ธฐ </button> |
button | ๋ฒํผ์ ํํ๋ง ๋ง๋ ๋ค. ๋๋ฆฌ๊ฑฐ๋ ํ์๋ ๋ค๋ฅธ ๋์์ ํ๋ ค๋ฉด ๋ฐ๋ก ํจ์๋ฅผ ์ฐ๊ฒฐํด์ผํจ |
<button type="button" onclick="alert('onclick์ alert๋ฅผ ์ฐ๋ฉด ์ด๋ฐ์์ผ๋ก ๊ฒฝ๊ณ ์ฐฝ์ด ๋ฌ๋ค.')">
Click Me!
</button>
<button> vs <input> ์ฐจ์ด์
์์์ ๋ฐฐ์ด <input type="button"> ์ผ๋ก ๋ฒํผ์ ๋ง๋ค์ ์๋๋ฐ ์ด ๋์ ์ฐจ์ด์ ์ ๋ฌด์์ผ๊น?
<input>ํ๊ทธ๋ ์ข ๋ฃํ๊ทธ ์์ด type ์์ฑ ์ด์ฉํด ๋ฒํผ์ ๊ธ์๋ ์ด๋ฏธ์ง ๋ฃ์ง๋ง,<button>ํ๊ทธ๋ ์์ํ๊ทธ์ ์ข ๋ฃํ๊ทธ ์ฌ์ด์ ๊ธ์๋ ์ด๋ฏธ์ง ๋ฃ๋๋ค- ํญ์
<button>ํ๊ทธ์ type ์์ฑ์ ๋ช ์ํด์ค์ผ ํ๋ค. ์๋ํ๋ฉด, IE(์ต์คํ๋ก๋ฌ) ๊ฒฝ์ฐ ๊ธฐ๋ณธ ํ์ ์ด button ์ด์ง๋ง, ํ ๋ธ๋ผ์ฐ์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ํ์ ์ด submit ์ด๊ธฐ ๋๋ฌธ์ด๋ค. <form>ํ๊ทธ ์์์ ๋ฒํผ ๋ง๋ค ๋, ๋ฐ๋์<input>ํ๊ทธ ์ด์ฉํด ๋ฒํผ ๋ง๋ค์ด์ผ ํ๋ค. ์๋ํ๋ฉด, ํ ๋ธ๋ผ์ฐ์ ๊ฐ<button>ํ๊ทธ์ ์์ฑ๊ฐ์ ์ ์กํ๋ ๋ฐ๋ฉด, IE๋ ์์ํ๊ทธ์ ์ข ๋ฃํ๊ทธ ์ฌ์ด์ ํ ์คํธ๋ ์ด๋ฏธ์ง ์ ์กํ๊ธฐ ๋๋ฌธ์ด๋ค.
# ์ฐธ๊ณ ์๋ฃ
https://www.javatpoint.com/html-form
https://www.nextree.co.kr/p8428/
https://internetingishard.com/html-and-css/forms/
https://poiemaweb.com/html5-tag-forms
http://www.tcpschool.com/html-tags/textarea
https://webisfree.com/2017-01-10/label-%ED%83%9C%EA%B7%B8%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%8B%A4%EC%96%91%ED%95%9C-%EB%B0%A9%EB%B2%95
์ด ๊ธ์ด ์ข์ผ์ จ๋ค๋ฉด ๊ตฌ๋ & ์ข์์
์ฌ๋ฌ๋ถ์ ๊ตฌ๋
๊ณผ ์ข์์๋
์ ์์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค.