๐ฒ ๋ชฉํ: ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ๋ฐ๊ธฐ ์ํด ์ค์ํ form&input ํ๊ทธ ๋ฝ๊ฐ๊ธฐ~~
โถ ๋ชฉ์ฐจ
๐ form
๐ label
๐ button
๐ input
๐ select & option
๐ textarea
๋ญ๊ฐ ๋๋ฌด ๋ง์์ ํท๊ฐ๋ฆฌ๋๋ฐ ๐๊ฐ ๋ถ์ ๊ฑด tag๊ณ , ๐๋ก ํ์๋ ๊ฑด attribute!
ํ
์ด๋ธ๋ก ์น๋ฉด <table>
๊ฐ์ ์ญํ ! <table>
์ด <tr>
, <td>
, <th>
, <thead>
๋ฑ์ ๊ฐ์ธ๋ฏ์ด <form>
๋ <input>
, <button>
๋ฑ์ ๊ทธ๋ฃนํํ๋ค. ํ์ง๋ง ๋จ์ํ ๋ฌถ๋ ๊ฒ์ ๋์ด์ submit๋ ๋ฐ์ดํฐ๋ฅผ ์ด๋๋ก ๋ณด๋ด์ผ ํ๋์ง ์๋ ค ์ค!
form์ submitํ๋ฉด HTTP request๋ฅผ ๋ณด๋ด๊ฒ ๋๊ณ , action ์์ฑ์ ํตํด ํด๋น ์์ฒญ์ ์ด๋๋ก ๋ณด๋ผ์ง ์ง์ ํ ์ ์์. ๋ฐ์ดํฐ๊ฐ ๋์ฐฉํ URL.
์๋์์ฑ๊ธฐ๋ฅ. ์์ฑ๊ฐ์ on์ผ๋ก ์ฃผ๋ฉด ์ฌ์ฉ์์ ๊ณผ๊ฑฐ ์ ๋ ฅ๊ฐ์ ๊ธฐ๋ฐํด ๋ธ๋ผ์ฐ์ ๊ฐ ์๋์ผ๋ก ๊ฐ์ ์ฑ์ ๋ฃ์.
์์์ submitํ ๋ ์ฌ์ฉํ HTTP method
sumbit ํ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ์๋ต์ ์ด๋ป๊ฒ ํ์ํ ์ง ๊ด๋ฆฌํ๋ ์์ฑ
<label for="username">What's your name?</label>
<input type="text" name="username" id="username" placeholder="enter your name!">
<input type="checkbox" id="cheese"><label for="cheese"> I like cheese</label>
๊ฒฐ๊ณผ๐ป
What's your name?
I like cheese
๋ฒจ๋ก๊ทธ ํฌ์คํ ์์๋ label์ ํ ์คํธ๋ฅผ ๋๋ฅด๋ฉด ํด๋น input์ด ํ์ฑํ๋๋ ๊ธฐ๋ฅ์ด ์ ๋จนํ๋ค. ๐
form ํ๊ทธ์ attribute ์์ฑ์ ๋ฐ๋ผ submit๋จ
ํ์ด์ง ๋ก๋ ํ ์๋์ผ๋ก ํด๋น ๋ฒํผ์ ํฌ์ปค์ค๋ฅผ ์ฃผ๋ ์์ฑ (ํ ํ์ด์ง๋น ํ๋์ ์์๋ง autofocus๋ฅผ ๊ฐ์ง ์ ์์!)
๋๋ฅด๊ฑฐ๋ ํด๋ฆญํ๋ ๊ฒ์ ๋ง์ (๋ฐ์ดํฐ ์ ๋ ฅ ์ ์ submitํ๋ ๊ฑธ ๋ฐฉ์งํ ์ ์์ ๋ฏ!)
form์์ ๊ฐ์ฅ ์ค์ํ input ํ๊ทธ! type์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ์ง ์
๋ ฅ ์์์ ๋ง๋ค ์ ์๊ณ , ํด๋ก์ง ํ๊ทธ๊ฐ ์๋ ๊ฒ ํน์ง. id
, name
, value
๋ฑ์ ์์ฑ์ ์ค์ ๋ก ํ๋ฉด์ ๊ตฌํ๋์ง๋ ์์ง๋ง ๋ฐ์ดํฐ ์ฐ๊ฒฐ์ ์ํด ์ค์ํจ!
{attribute ์์ฑ๊ฐ}?{name}={์
๋ ฅ๋ฐ์ data}
์ ํํlabel์ for ์์ฑ๊ฐ๊ณผ ๋งค์น๋์ด์ผ ํ๋ ์์ฑ
์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ ์์ ๊ฒฝ์ฐ submitํ์ง ๋ชปํ๋๋ก ํ๋ ์์ฑ
์ฌ์ฉ์์ ์
๋ ฅ๊ฐ์ด ์ ํจํ ๊ฐ์ด ๋๋๋ก ๋ฒ์๋ฅผ ์ ํํ๋ ์์ฑ๋ค!
input ๊ฐ์ด text ํ์์ธ ๊ฒฝ์ฐ minlength/maxlength ์์ฑ์ ํตํด ์
๋ ฅํด์ผ ํ๋ ์ต์/์ต๋์ ๊ธ์์๋ฅผ ์ง์ ํ ์ ์๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก input ๊ฐ์ด number์ธ ๊ฒฝ์ฐ(number, date, range ๋ฑ) min/max๋ก ์ต์๊ฐ/์ต๋๊ฐ์ ์ง์ ํ ์ ์๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ์ฉ์์ ์
๋ ฅ๊ฐ์ด ์ ํจํ๋๋ก ํํ๋ฅผ ์ง์ ํ๋ ์์ฑ!
์ ๊ทํํ์(Regular Expression)์ ํตํด์ ๋ฌธ์์ ์ซ์๊ฐ ํฌํจ๋์ด์ผ ํ๋์ง ๋ฑ ํจํด์ ์ง์ ํ ์ ์์.
๐ type="text"
<lable for="mood">How are you today?</lable> <input type="text" id="mood" name="mood" placeholder="Today I am...">
๊ฒฐ๊ณผ๐ป
How are you today?
๐ type="number"
<lable for="age">How old are you?</lable> <input type="number" id="age" name="age" placeholder="20" min="1" max="100">
๊ฒฐ๊ณผ๐ป
How old are you?
๐ type="radio"
- checkbox์ ๋ค๋ฅธ ์ : radio์ ๊ฒฝ์ฐ ์ฌ๋ฌ ๊ฐ์ input ์ค ํ ๊ฐ์ง๋ง ์ ํํ ์ ์๋ค
- ๊ทธ๋ฃนํํ ๋ณด๊ธฐ๋ค์ ๋์ผํ name์ ๊ฐ์ ธ์ผ ํจ!
<label for="xs">XS</label> <input type="radio" name="size" id="xs" value="xs"> <label for="s">S</label> <input type="radio" name="size" id="s" value="s"> <label for="m">M</label> <input type="radio" name="size" id="m" value="m">
๊ฒฐ๊ณผ๐ป
XS
S
Mlabel์ ๋๋ฅด๋ฉด ์๋ ์ฐ๊ฒฐ๋ radio input์ด ์ ํ๋์ด์ผ ํ๋๋ฐ... ๋ฒจ๋ก๊ทธ์์ ์ด๊ฒ๋ ์ ๋จนํ๋ค ๐ ๊ทธ๋ฆฌ๊ณ ์๋ ๊ฐ์ name์ ๊ฐ์ง input ์ค ํ๋๋ง ์ ํ๋์ด์ผ ํ๋๋ฐ ์ฌ๊ธฐ์ ์ค๋ณต์ ํ๋ ๋๋ ๋ฏ?? ๋จธ์ผ ์ฐธ๋;;
๐ type="range"
<label for="volume">๐</label> <input type="range" id="volume" name="volume" min="0" max="100">
๊ฒฐ๊ณผ๐ป
๐
range์์๋ value ์์ฑ์ผ๋ก ๋ํดํธ๊ฐ์ ์ค์ ํ ์ ์์!
<select name='fruits'>
<option value='' selected>-- ์ ํ --</option>
<option value='apple'>๋ ๋ชฌ</option>
<option value='banana'>๋ธ๊ธฐ</option>
<option value='lemon'>๋ธ๋ฃจ๋ฒ ๋ฆฌ</option>
</select>
์ผ๋ฐ input์ text๋ณด๋ค ๋ง์ ํ
์คํธ๋ฅผ ์
๋ ฅํด์ผํ ๋ ์ฌ์ฉํ๋ฉด ์ข์ ํ๊ทธ!
rows, cols๋ก ์์ญ์ ํฌ๊ธฐ๋ฅผ ์ง์ ํ ์ ์์
<textarea rows="10" cols="50" placeholder="์
๋ ฅํ์ธ์!"></textarea>