Index
Index1. <Form> ๊ธฐ๋ณธ ์์ฑ1.1 ํผ ๋์ ๋ฐฉ์1.2 ํผ์ ์์ฑ1.3 ํผ์ ํ์
2. <input>3. <label>3.1 <label> ์ ์ฌ์ฉ๋ฒ3.2 for ์์ฑ4. <select>4.1 <select>์ ์์ฑ๋ค4.2 <option>์ ์์ฑ๋ค5. <fieldset>6. <legend>7. <button>7.1 button ํ๊ทธ์ type7.2 Input vs button ๋ฌด์์ ์จ์ผํ ๊น?8. ์ค์ต
ย
1. <Form>
๊ธฐ๋ณธ ์์ฑ
ํผ์ ์ ๋ณด๋ฅผ ์
๋ ฅํ๋ ์์ญ์
๋๋ค. ๋ก๊ทธ์ธ ํ๋ฉด์์ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํ๋ ๊ฒ, ํ์ ๊ฐ์
ํ ๋ ์ ๋ณด๋ฅผ ์
๋ ฅํ๋ ์์ ๋ฑ์ ๋ชจ๋ ํผ์ ์ด์ฉํฉ๋๋ค. ํผ์ ์
๋ ฅ์ ํ๋ฉด ๋ฐ์ดํฐ๋ ์๋ฒ๋ก ์ ์ก์ ํ๊ฒ ๋๊ณ , ์ ์กํ ๋ฐ์ดํฐ๋ ์น ์๋ฒ๊ฐ ์ฒ๋ฆฌํ๋ฉฐ, ๋ค์ ๋ค๋ฅธ ์น ํ์ด์ง๋ฅผ ๋ณด์ฌ์ค๋๋ค.
ย
1.1 ํผ ๋์ ๋ฐฉ์
- ์น ํ์ด์ง์ ์๋ form์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- ์น ํ์ด์ง ๋ด ์ก์ ์ด ์ผ์ด๋๊ฒ ๋๋ฉด ๋ฐ์ดํฐ๋ ์น ์๋ฒ๋ก ์ด๋ํ๊ฒ ๋ฉ๋๋ค.
- ์น ์๋ฒ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด APP์ ํธ์ถํฉ๋๋ค. ์ด๋ APP์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ณ๋์ ์๋ฒ์ผ ์๋ ์์ต๋๋ค.
- ํ์์ ๋ฐ๋ผ APP์ DB๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํฉ๋๋ค. ์ด๋ DB๋ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ณ๋์ ์๋ฒ์ผ ์๋ ์์ต๋๋ค.
- DB์์ CRUD ์์ ์ด ์ผ์ด๋๊ณ ์์ ๊ฒฐ๊ณผ๋ฅผ APP์ผ๋ก, WEB์ผ๋ก ์ ์กํฉ๋๋ค.
CRUD
- ์น ์๋ฒ๋ ๋ฐ์ ๊ฒฐ๊ณผ๋ฅผ Client ๋ธ๋ผ์ฐ์ ์๊ฒ ๋ณด๋ ๋๋ค.
- ์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ๋ 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
์ ๋ ๊ฐ์ง ์ฌ์ฉ๋ฒ์ด ์์ต๋๋ค.- ํ ์คํธ์ ์ค๋ช ๊ณผ ํผ ์ ๋ ฅ ๋ชจ๋๋ฅผ ํฌํจํ๋ ๋ฐฉ์
<label> ์ด๋ฆ : <input type="text" name="name"> </label>
ย
- ํผ ์
๋ ฅ์์ ๋ถ๋ฆฌํ์ฌ
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>
์ ์์ฑ๋ค
- multiple="multiple" :
multiple
์์ฑ์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๊ฐ ์ฌ๋ฌ๊ฐ์option
์์๋ฅผ ์ ํํ ์ ์๊ฒ ๋ฉ๋๋ค. ๋จ, ๋จ์ ํด๋ฆญ์ผ๋ก๋ ์ ํ๋์ง ์์ผ๋ฉฐ windows ์์๋ctrl
, OSX ์์๋command
๋ฒํผ์ ๋๋ฅด๊ณ ํด๋ฆญํด์ผ ์ฌ๋ฌ๊ฐ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
- size :
size
์์ฑ์ ํตํด ๋๋กญ๋ค์ด ๋ฆฌ์คํธ์์ ํ๋ฒ์ ๋ณด์ฌ์ค ์ ์๋option
์ ๊ฐฏ์๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค.
ย
4.2 <option>
์ ์์ฑ๋ค
- value :
<option>
์์๋value
์์ฑ์ ์ฌ์ฉํ์ฌ ์ ํ๊ฐ์ ๋ฐ๋ผ ์๋ฒ์ ์ด๋ ํ ๊ฐ์ ์ ์กํ ์ง ์ค์ ํ ์ ์์ต๋๋ค.
- 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
: ํด๋ฆญ ๊ฐ๋ฅํ ๋ฒํผ์ ๋๋ค. ์ฌ์ฉ์๊ฐ ๊ธฐ๋ฅ์ ๋ถ์ฌํ๊ธฐ ์ ๊น์ง๋ ๋ณ ๋ค๋ฅธ ์๋์ ํ์ง ์์ต๋๋ค.
ย
<!-- ๋ค์ด๋ฒ ๋ฉ์ธ ํ๋ฉด์ ๊ฒ์ ๋ฒํผ 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 : ์ต๋ ๊ธธ์ด