[HTML5] formμμ±(MDN)
[HTML] form μμ±νκΈ°
HTML form ꡬμ±λ°©λ²
HTML formμ λ§λ€ λ ꡬ쑰ννλ κ²μ΄ μ€μνλ€.
formμ΄ μ¬μ©ν μ μλ€λ κ²μ 보μ₯νκ³ μ κ·Όμ±λ λ릴 μ μκΈ° λλ¬Έμ΄λ€.(μ₯μ μΈλ€λ μ½κ² μ¬μ© κ°λ₯) HTML νΌμ μ κ·Όμ±μ μ€μν μ μ΄κ³ μ΄λ»κ² νΌ μ κ·Όμ±μ λμΌ μ μλμ§ μμ보μ.
HTMLνΌλ€μ μ μ°μ±μΌλ‘ μΈν΄ HTML μ€ λ³΅μ‘ν ꡬ쑰λ₯Ό κ°μ§κ³ μλ μμμ€ νλμ΄λ€. λͺ¨λ λΈλΌμ°μ μμ νΌμ μ’ λ₯λ λ리 ꡬνλμ§ μμλλ° μ΄λ λλΆλΆ μλ°μ€ν¬λ¦½νΈμ μμ‘΄νμ¬ HTMLνΌλ€μ λ€λ£¨κΈ° λλ¬Έμ΄λ€.
μ΄ λ¬Έμμμλ HTML νΌ μμλ€μ μ΄λ»κ² μ¬μ©νμ§ μμΈνκ² μ€λͺ ν κ²μ΄λ€.
#1. form μμ
<form>
μμλ 곡μμ μμΌλ‘ νΌμ μ μνλ μμλ‘ μ΄ μμμ μμ±μΌλ‘ νΌμ μλνλ λ°©μμ μ μν μ μλ€.
HTML νΌμ μμ±ν λλ§λ€ λ°λμ μ΄ μμλ‘ μμν΄μΌ νλ€.
νΌμ λ€λ₯Έ νΌμΌλ‘ λλ¬μΈλ κ²μ μ격νκ² μ νλμ΄ μλ€. λ§μ½ μ¬μ©μκ° μ΄λ₯Ό μ¬μ©ν κ²½μ° λΈλΌμ°μ μ λ°λΌ μμΈ‘λΆκ°λ₯ν λ°©μμΌλ‘ μλνκ² λλ€.
<form>
μμ μμ±
μμ± μ΄λ¦ | κΈ°λ³Έκ° | μ€λͺ |
---|---|---|
accept-charset | UNKNOWN | μλ²κ° λ°μλ€μ λ¬Έμ μΈμ½λ©νμμ μ§μ . κΈ°λ³Έκ°μ νΉμλ¬Έμμ΄ UNKNOWNμ΄κ³ μ΄ κ²½μ° νΌ μμ μμ μλ λ¬Έμμ μΈμ½λ©μ λ§λ μΈμ½λ©μ΄λ€. |
action | νΌμ ν΅ν΄μ μ μ‘ν μ 보λ₯Ό μ²λ¦¬νλ μΉνμ΄μ§ URL | |
autocomplete | on | μ΄ νΌμμ μλ μμ ―λ€μ κΈ°λ³Έκ°μ΄ λΈλΌμ°μ μ μν΄ μλμμ±νκ² λλμ§ μ¬λΆλ₯Ό λνλΈλ€. μ΄ μμ±μ λκ°μ§ κ°μ€ νλλ₯Ό κ°λλ€. on λλ off |
enctype | application/x-www-form-url-urlencoded | /method μμ±μ΄ postκ°μΌλ‘ μ§μ λλ©΄, μλ²λ‘ νΌμ μ μ‘νλ μ½ν
μΈ MIMEμ νμ
μ μ§μ νλ€. * application/x-www-form-url-urlencoded * multipart/form-data: <input> μμμ νμ
μμ±μ fileλ‘ μ§μ ν κ²½μ° μ΄ μμ±μ κ°μ μ¬μ©νλ€.* text/plain |
method | get | λΈλΌμ°μ κ° νΌμ μ μ‘νκΈ° μν΄μ μ¬μ©νλ HTTPμ λ°©μμ μ§μ νλ€. μ΄ μμ±μ λκ°μ κ°μ€ νλλ₯Ό κ°μ§λ€. get λλ post |
name | νΌμ μ΄λ¦μ΄λ€. μ΄ μμ±κ°μ λ°λμ λ¬Έμμ νΌμ¬μ΄μ κ³ μ ν΄μΌ νλ©° λΉλ¬Έμμ΄μ μ§μ ν μ μλ€. μΌλ°μ μΌλ‘ id μμ±μΌλ‘ λμ μ§μ ν μ μλ€. | |
novalidate | (false) | μ΄ λΆλ¦¬μΈ μμ±μ νΌμ΄ μ μ‘ν λ μ ν¨μ±κ²μ¬λ₯Ό ν μ μμμ λνλΈλ€. |
target | _self | νΌ μμ²μ μ μ‘ν ν μλ΅μ μ΄λ»κ² λ°μ κ²μΈμ§ μ§μ νλ€. μλ₯Ό λ€μ΄ <iframe> , tab, window λ₯Ό μ¬μ©ν μ μλ€. μ΄μμ±μ ν€μλλ‘ λ€μκ³Ό κ°μ κ°μ μ¬μ©ν μ μλ€.* _self : μλ΅μ νμ¬ λΈλΌμ°μ§ 컨ν μ€νΈ ( <iframe> , tab, window λ±)μμ λΆλ¬μ¨λ€.* _blank : μλ΅μ μλ‘μ΄ λΈλΌμ°μ§ 컨ν μ€νΈλ‘ λΆλ¬μ¨λ€. * _parent : μλ΅μ νμ¬μ λΈλΌμ°μ§ 컨ν μ€νΈμ λΆλͺ¨ λΈλΌμ°μ§ 컨ν μ€νΈμμ λΆλ¬μ¨λ€. λ§μ½ λΆλͺ¨κ° μλ€λ©΄ _self ν€μλμ λκ°μ΄μλ. * _top : μλ΅μ μ΅μμ λ 벨 λΈλΌμ°μ§ 컨ν μ€νΈμμ λΆλ¬μ¨λ€. λ§μ½ μ΅μμ 컨ν μ€νΈκ° μλ€λ©΄ _self ν€μλμ λκ°μ΄ μλ. |
μμ λ°μ νΌ μμ ―λ€μ μ¬μ©ν μ μμ§λ§, νΌ μμ ―μ΄ μ΄λ ν νΌκ³Όλ μκ΄μ΄ μλ€λ κ²μ μ μν΄μΌ νλ€.
κΈ°μ μ μΌλ‘ HTML5λ HTML νΌ μμμμ νΌ μμ±μ μ€λͺ
νλ€. μ΄κ²μ μμλ€μ μ€μ λ‘ <form>
μμ μμ§ μμλ form μμλ₯Ό νμ€νκ² λ°μΈλ©νλλ‘ ν΄μΌνλ€. νμ§λ§ λͺ¨λ λΈλΌμ°μ κ° μμ§ μΆ©λΆν μ§μνμ§ μμ formμμμ μλ§κ² μμ±ν΄μΌ νλ€.
#2. <fieldset>
μ <legend>
μμ
<fieldset>
μμλ κ°μ λͺ©μ μ κ°μ§ μμ ―λ€μ νΈλ¦¬νκ² κ·Έλ£Ήν νλ λ°©λ²μ΄λ€.
<fieldset>
μμλ λΌλ²¨μΈ <legend>
μμμ κ°μ΄ μ¬μ©λλ€.
<legend>
μμλ 곡μμ μΌλ‘ <fieldset>
μμλ₯Ό μ€λͺ
νλλ° μ¬μ©νκ±°λ <fieldset>
μμμ λΌλ²¨λ‘ μ΄μ©νλλ° μ¬μ©λλ€.
[μμ ]
<form>
<fieldset>
<legend>Fruit juice size</legend>
<p>
<input type="radio" name="size" id="size_1" value="small" />
<label for="size_1">Small</label>
</p>
<p>
<input type="radio" name="size" id="size_2" value="medium" />
<label for="size_2">Medium</label>
</p>
<p>
<input type="radio" name="size" id="size_3" value="large" />
<label for="size_3">Large</label>
</p>
</fieldset>
</form>
μ΄ μμ λ₯Ό μ€ν¬λ¦° 리λκΈ°κ° Fruit juice size smallμ λ¨Όμ μ½κ³ , Fruit juice size mediumμ μ½μ λ€μ, λ§μ§λ§μΌλ‘ Fruit juice size largeλ₯Ό μ½μ κ²μ΄λ€.
μ΄ μμ λ μ€μνλ€. λλΆλΆ λΌλμ€ λ²νΌμ μ€μ ν λλ§λ€ <fieldset>
μμ μμ μλμ§ νμΈν΄μΌ νλ€.
μΌλ°μ μΌλ‘ <fieldset>
μμλ νΌμ κ°λ ₯νκ² μ¬μ©ν μ μκ² ν΄μ€λ€. 보쑰기μ μ μν₯μΌλ‘ <fieldset>
μμλ νΌ μ κ·Ό ν μ μλ ν€ μμ μ€ νλμ΄λ€. κ°λ₯ν νΌμ λ§λ€λλ§λ€ μ€ν¬λ¦°λ¦¬λλ‘ λ€μ΄λ³΄λ©΄μ νλ κ²μ΄ μ’λ€.
<fieldset>
μμμ μμ±
μμ± μ΄λ¦ | κΈ°λ³Έκ° | μ€λͺ |
---|---|---|
disabled | (false) | λ§μ½ μ΄ λΆλ¦¬μΈμ μμ±μ΄ μ€μ λλ©΄ νΌμ(첫 λ²μ§Έ<legend> μμμ μλ μμλ μμΈμ΄λ€.) μ΄κ²μ νμλ μμλ₯Ό μ¬μ©νκ±°λ νΈμ§ν μ μκ² λλ€.κ·Έλ¦¬κ³ λ§μ°μ€ ν΄λ¦κ°μ μ΄λ ν λΈλΌμ°μ μ΄λ²€νΈλ€λ λ°μ§ μμ κ²μ΄λ€. μΌλ°μ μΌλ‘ λΈλΌμ°μ λ νμμΌλ‘ μ΄λ₯Ό νμν κ²μ΄λ€. |
#3. <label>
μμ
<label>
μμλ HTML νΌ μμ ―μ μ μνλ 곡μμ μΈ λ°©λ²μ΄λ€.
μ κ·Όμ± μλ νΌμ λ§λλλ° κ°μ₯ μ€μν μμμ΄λ€.
<label>
μμμ μμ±
μμ±λͺ | κΈ°λ³Έκ° | μ€λͺ |
---|---|---|
for | <label> μμμ κ°μ λ¬Έμμ μλ μμ ―μ λΌλ²¨μ ID.λ¬Έμμμ IDμ forμμ±κ°μ΄ κ°μΌλ©΄ κ·Έ λΌλ²¨μμλ κ·Έ μμ ―μ λΌλ²¨μ΄ λλ€. |
μμλ forμμ±μΌλ‘ μ§μ ν μμ ―κ³Ό λ¬Άμ¬μ§λ€. forμμ±μ ν΄λΉ μμ ―μ μ€μ id μμ±μ μ°Έμ‘°νλ€.
λͺ¨λ λΈλΌμ°μ μμ 곡μμ μΈ λΌλ²¨ μ€μ νλ©΄ μ¬μ©μκ° λΌλ²¨μ λλ₯΄λ©΄ ν΄λΉνλ μμ ―μ΄ νμ±ν ν μ μλ€. μ΄κ²μ λΌλμ€λ²νΌμ΄λ 체ν¬λ°μ€λ₯Ό μ¬μ©νλλ° νΉν μ μ©νλ€.
[μμ ]
<form>
<!-- μ³μ λ°©λ² -->
<p>
<input type="checkbox" id="taste_1" name="taste_cherty" value="1" />
<label for="taste_1">I like cherry</label>
</p>
<!-- μ³μ§ μμ λ°©λ² -->
<p>
<label for="taste_2">
<input type="checkbox" id="taste_2" name="taste_banana" value="1">
I like banana
</label>
</p>
</form>
<label>
for μμ±(<input>
μμμ id μμ±ν¬ν¨)μ ν΅ν΄ <input>
κ³Ό <label>
μ΄ μ¬λ°λ₯΄κ² μ°κ²°λλ©΄ μ€ν¬λ¦°λ¦¬λκΈ°λ "μ΄λ¦, ν
μ€νΈ νΈμ§"κ³Ό κ°μ λ΄μ©μ μ½λλ€.
νμ§λ§ μμμ λ§μ§ μμ κ²½μ° μ€ν¬λ¦° 리λκΈ°κ° μ½λλ° μ€λ₯κ° κ±Έλ¦΄ μ μλ€.
[μμ :: λ€μν λΌλ²¨μ΄ μμ κ²½μ°]
<p>Reqquired fields are followed by <abbr title="required">*</abbr>.</p>
<!-- So this: -->
<div>
<label for="username">Name:</label>
<input type="text" name="username">
<label for="username"><abbr title="required" aria-label="required">*</abbr></label>
</div>
<!-- would be better done like this: -->
<div>
<label for="username">
<span>Name:</span>
<input id="username" type="text" name="username">
<abbr title="required" aria-label="required">*</abbr>
</label>
</div>
<!-- But this is probabbly best: -->
<div>
<label for="username">Name: <abbr title="required" aria-label="required">*</abbr></label>
<input id="username" type="text" name="username">
</div>
μ€ν¬λ¦° 리λκΈ°λ λ³ν(*)λ₯Ό "λ³"μ΄λΌκ³ νλ€. 보μ΄λ λ§μ°μ€ μ¬μ©μκ° λ§μ°μ€λ₯Ό κ°μ Έκ°λ©΄ title μμ±μ μ¬μ©νμ¬ "νμ"κ° λνλλ€. μ리λ΄μ΄ μ½λ μ λͺ©μ μ€ν¬λ¦°λ¦¬λκΈ°μ μ€μ μ λ°λΌ λ¬λΌμ§λ―λ‘ aria-labelμμ±λ ν¬ν¨νλ κ²μ΄ λ μμ μ μ΄λ€.
첫 λ²μ§Έ μμ λ labelμ μ½νμ§μ§ μλλ€. μ¬λ¬ <label>
μμλ μ€ν¬λ¦°λ¦¬λκΈ°κ° νΌλμ νλ€. νμ§λ§ <input>
μλ μ΄μ κ΄λ ¨λ labelμ΄ μκΈ°λλ¬Έμ 첫 λ²μ§Έλ³΄λ¨ λ«λ€.
λ λ²μ§Έ μμ μμ μ€ν¬λ¦°λ¦¬λκΈ°λ "name star name edit text required"λ‘ μ½λλ€. μ¬μ ν labelλ₯Ό κ°λ³μ μΌλ‘ μ½λλ€.
μΈ λ²μ§Έ μμ κ° κ°μ₯ μ’λ€. "name required edit text"λ‘ μ½λλ€.
#3. HTML κ΅¬μ‘°λ‘ formμ μ¬μ©νκΈ°
HTMLμ λͺ¨λ κΈ°λ₯μ μ¬μ©νμ¬ μΉ μμμ ꡬμ±ν μ μλ€.
μμ μμ λ³Ό μ μλ―μ΄ labelκ³Ό ν΄λΉ μμ ―μ <ul>
λλ <ol>
λͺ©λ‘λ΄μ <li>
μμλ‘ κ°μΈλ κ²μ΄ μΌλ°μ μ΄λ€. <p>
λ° <div>
μμλ μΌλ°μ μΌλ‘ μ¬μ©λλ€. μ¬λ¬κ°μ νμΈλ λλ λΌλμ€ λ²νΌμ ꡬμ±ν λ λͺ©λ‘μ΄ κΆμ₯λλ€.
<fieldest>
μμ μΈμλ HTML μ λͺ©(μ : <h1>
, <h2>
) λ° μΉμ
(μ : <section>
)μ μ¬μ©νμ¬ λ³΅μ‘ν μμμ ꡬμ±νλ κ²μ΄ μΌλ°μ μ΄λ€.
-
<form>
νκ·Έ μμ μ λͺ©κ³Ό λ¨λ½μ μΆκ°νμ¬ νμν νλκ° νμλλ λ°©μμ μ¬μ©μμκ² μλ €μ€λ€.<form> <h1>Payment form</h1> <p>Required fields are followed by <strong><abbr title="required">*</abbr></strong>.</p> </form>
-
νλͺ© μλμ λν° μ½λ μΉμ μ μΆκ°νλ€. μ¬κΈ°μμ μ°λ½μ² μ 보 νλλ₯Ό λ³κ°μ
<section>
μμ μμ λ΄λλ€. λν λκ°μ λΌλμ€ λ²νΌ μΈνΈκ° μμΌλ©° κ° λΌλμ€ λ²νΌμ μ체λͺ©λ‘(<li>
) μμ μμ μλ€. λν λκ°μ νμ€ν μ€νΈ<input>
κ³Ό<p>
μμ ν¬ν¨λ κ΄λ ¨<label>
μμμ μνΈ μ λ ₯μ μν νλλ₯Ό μΆκ°νλ€.<section> <h2>Contact information</h2> <fieldset> <legend>Title</legend> <ul> <li> <label for="title_1"> <input type="radio" id="title_1" name="title" value="K">King </label> </li> <li> <label for="title_2"> <input type="radio" id="title_2" name="title" value="Q">Queen </label> </li> <li> <label for="title_3"> <input type="radio" id="title_3" name="title" value="J">Joker </label> </li> </ul> </fieldset> <p> <label for="name"> <span>Name: </span> <strong><abbr title="required">*</abbr></strong> </label> <input type="text" id="name" name="username"> </p> <p> <label for="mail"> <span>E-mail: </span> <strong><abbr title="required">*</abbr></strong> </label> <input type="email" id="mail" name="usermail"> </p> <p> <label for="pwd"> <span>Password: </span> <strong><abbr title="required">*</abbr></strong> </label> <input type="password" id="pwd" name="password"> </p> </section>
-
μΉμ μ νλ λ μΆκ°νλ€. 첫 λ²μ§Έλ μ μ©μΉ΄λ μ νμ μ ννκΈ° μν΄ λλ‘λ€μ΄ λ©λ΄(
<select>
)λ₯Ό μ΄λ€. λ λ²μ§Έλ μ μ©μΉ΄λ λ²νΈλ₯Ό μ λ ₯νκΈ° μν΄ tel μ νμ<input>
μμλ₯Ό μ΄λ€. μ«μ μ νμ μ¬μ©ν μ μμ§λ§ μ€νΌλ UIλ μ«μλ₯Ό μνμ§ μλλ€. λ§μ§λ§μΌλ‘ μΉ΄λλ§λ£ λ μ§λ₯Ό μ λ ₯νκΈ° μν΄ λ μ§ μ νμ<input>
μμλ₯Ό μ¬μ©νλ€. μ΄ λΈλΌμ°μ λ μ§μλΈλΌμ°μ μμ λ μ§ μ νλꡬλ₯Ό μ 곡νλ©° μ§μλμ§ μλ λΈλΌμ°μ λ μΌλ°ν μ€νΈ μ λ ₯μΌλ‘ λ체νλ€. μ΄ λ°©λ²μ HTML5μμ λμ λμλ€.<section> <h2>Payment information</h2> <p> <label for="card"> <span>Card type: </span> </label> <select id="card" name="usercard"> <option value="visa">Visa</option> <option value="mc">Mastercard</option> <option value="amex">American Express</option> </select> </p> <p> <label for="number"> <span>Card number: </span> <strong><abbr title="required">*</abbr></strong> </label> <input type="tel" id="number" name="cardnumber"> </p> <p> <label for="date"> <span>Expiration date: </span> <strong><abbr title="required">*</abbr></strong> <em>formatted as mm/yy</em> </label> <input type="date" id="date" name="expiration"> </p> </section>
-
λ§μ§λ§μΌλ‘
<button type="submit">
μ λ§λ€μ΄ μ€λ€. submitμ λ°μ΄ν°λ₯Ό 보λ΄μ€λ€.<p> <button type="submit">Validate the payment</button> </p>
- κ²°κ³Ό
