[TIL] Forms

Sohee YeoΒ·2022λ…„ 4μ›” 1일
0

TIL

λͺ©λ‘ 보기
9/23
post-thumbnail

2022.03.31 Today I LearnedπŸ“š

πŸ‘†Form

μž…λ ₯ν•˜λŠ” μ˜μ—­. 둜그인 ν™”λ©΄μ—μ„œ 아이디와 λΉ„λ°€λ²ˆν˜Έλ₯Ό μž…λ ₯ν•˜κ±°λ‚˜ νšŒμ› κ°€μž…μ‹œ 정보λ₯Ό μž…λ ₯ν•˜λŠ” 양식 등은 λͺ¨λ‘ 폼을 μ΄μš©ν•œλ‹€. 폼에 μž…λ ₯을 ν•˜κ³  제좜(submit)ν•˜κ²Œ 되면 λ°μ΄ν„°λŠ” μ„œλ²„λ‘œ μ „μ†‘λ˜κ³ , μ „μ†‘ν•œ λ°μ΄ν„°λŠ” μ›Ή μ„œλ²„κ°€ μ²˜λ¦¬ν•˜λ©°, 처리 ν›„ 둜그인 κ²°κ³Ό ν™”λ©΄ 같은 λ‹€λ₯Έ μ›Ή νŽ˜μ΄μ§€λ₯Ό ν΄λΌμ΄μ–ΈνŠΈμ— μ „μ†‘ν•œλ‹€.

form 의 속성

<action> μž…λ ₯값을 μ „μ†‘ν•˜λŠ” νŽ˜μ΄μ§€λ₯Ό λ‚˜νƒ€λ‚Έλ‹€.
method form의 데이터λ₯Ό 전솑할 방법을 μ •μ˜ν•œλ‹€.

πŸ’‘method의 속성
get μ›Ή μ„œλ²„μ— 데이터λ₯Ό μš”μ²­ν•  λ•Œ μ‚¬μš©ν•˜λ©°, μ£Όμ†Œμ— 데이터λ₯Ό μž…λ ₯ν•˜λŠ” 방식이닀.
post νŒŒμΌμ„ μ˜¬λ¦¬κ±°λ‚˜, λ³΄μ•ˆμ΄ ν•„μš”ν•œ 데이터λ₯Ό 전솑 ν•  λ•Œ λ“± μ‚¬μš©λ©λ‹ˆλ‹€. λ˜ν•œ μ£Όμ†Œμ— μž…λ ₯ λ‚΄μš©μ΄ λ‚˜νƒ€λ‚˜μ§€ μ•Šλ„λ‘ ν•©λ‹ˆλ‹€.
β†’ Passwordλ₯Ό μž…λ ₯ν•˜λŠ” form μ‚¬μš©μ‹œ, get을 μ‚¬μš©ν•˜λ©΄ 절.λŒ€. μ•ˆ λœλ‹€! ν™”λ©΄μ—λŠ” passwordκ°€ λ‚˜νƒ€λ‚˜μ§€ μ•Šμ§€λ§Œ, μ£Όμ†Œμ°½μ— passwordκ°€ μž…λ ₯λ˜μ–΄ λ‚˜μ˜€κΈ° λ•Œλ¬Έμ΄λ‹€.

<form action="login.html" method="get">
        <input type="text" name="userID">
        <input type="password" name="userPW">
        <button type="submit">둜그인</button>
    </form>


method="get" 적용

β†’ 둜그인 form에 ID: flo, PW: 171717을 μž‘μ„±ν•΄ λ³΄μ•˜λ‹€.

β†’ νŽ˜μ΄μ§€μ— μ•„λ¬΄λŸ° 정보도 좜λ ₯λ˜μ§€ μ•Šμ§€λ§Œ, μ£Όμ†Œμ°½μ— λ‚΄κ°€ μž…λ ₯ν•œ ID와 PWκ°€ κ·ΈλŒ€λ‘œ λ…ΈμΆœλœλ‹€.

<form action="login.html" method="post">
        <input type="text" name="userID">
        <input type="password" name="userPW">
        <button type="submit">둜그인</button>
    </form>

method="post" 적용

β†’ νŽ˜μ΄μ§€μ— μ•„λ¬΄λŸ° 정보도 좜λ ₯λ˜μ§€ μ•Šμ„ 뿐 μ•„λ‹ˆλΌ, μ£Όμ†Œμ°½μ— λ‚΄κ°€ μž…λ ₯ν•œ 정보 λ˜ν•œ λ‚˜νƒ€λ‚˜μ§€ μ•ŠλŠ”λ‹€. λ³΄μ•ˆμ΄ ν•„μš”ν•œ 정보을 전솑해야 ν•  λ•ŒλŠ” κΌ­ method="post"λ₯Ό μ‚¬μš©ν•˜μž!!

1. input

input 의 속성

  • type: νƒœκ·Έ λͺ¨μ–‘ λ³€κ²½ κ°€λŠ₯. text, radio, checkbox, password, button등을 지정할 수 있음.
  • name: νƒœκ·Έ 이름 지정.
  • readonly: νƒœκ·Έλ₯Ό 읽기 μ „μš©μœΌλ‘œ μ„€μ •.
  • maxlength: μ΅œλŒ€ κΈ€μž 수 지정.
  • minlength: μ΅œμ†Œ κΈ€μž 수 지정.
  • required: ν•„μˆ˜ νƒœκ·Έλ‘œ 지정. ν•„μˆ˜ νƒœκ·Έ μž…λ ₯ν•˜μ§€ μ•Šκ³  submit λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ μ—λŸ¬κ°€ 뜸.
  • autofocus: μ›Ή νŽ˜μ΄μ§€κ°€ λ‘œλ”©λ˜λ©΄ 이 속성을 μ§€μ •ν•œ νƒœκ·Έλ‘œ ν¬μ»€μŠ€κ°€ λ°”λ€œ.
  • placeholder: μž…λ ₯ν•  값에 λŒ€ν•œ 힌트λ₯Ό 쀌.
  • pattern: μ •κ·œν‘œν˜„μ‹μ„ μ‚¬μš©ν•˜μ—¬ νŠΉμ • λ²”μœ„ λ‚΄μ˜ μœ νš¨ν•œ 값을 μž…λ ₯받을 λ•Œ μ‚¬μš©.

input의 νƒ€μž…

<!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>
form text
password
date
time
range
color
radio
checkbox
file
name

3. label

input νƒœκ·Έλ‘œ 무엇을 μž…λ ₯ν•΄μ•Ό ν•˜λŠ”μ§€ μ„€λͺ…ν•  수 μžˆκ² μ§€λ§Œ, μ‹œκ° μž₯애인듀도 폼을 μ‚¬μš©ν•  수 μžˆλ„λ‘ μ‹œλ©˜ν‹±ν•œ <label> μš”μ†Œλ₯Ό μ‚¬μš©ν•˜λ„λ‘ ꢌμž₯ν•œλ‹€.

<label> 의 μ‚¬μš©λ²•

  • ν…μŠ€νŠΈμ˜ μ„€λͺ…κ³Ό 폼 μž…λ ₯ λͺ¨λ‘λ₯Ό ν¬ν•¨ν•˜λŠ” 방식
<label>
	이름 :
	<input type="text" name="name">
</label>
이름 :
  • 폼 μž…λ ₯μ—μ„œ λΆ„λ¦¬ν•˜μ—¬ for 속성을 μ΄μš©ν•΄ λ ˆμ΄λΈ”μ„ μ§€μ •ν•˜λŠ” 방식
<label for="myName">이름 : </label>
<input type="text" name="name" id="myName">

이름 :

β†’for 속성

for 속성은 λ ˆμ΄λΈ”μ΄ μ†ν•œ input κ³Ό 같은 폼 컨트둀(input, select, textarea 와 같은 μš”μ†Œλ“€)을 μ˜λ―Έν•œλ‹€. for μ†μ„±μ˜ 값은 ν•΄λ‹Ή λ ˆμ΄λΈ”μ΄ 속할 폼 컨트둀의 idκ°’κ³Ό μΌμΉ˜ν•΄μ•Ό ν•œλ‹€. λ ˆμ΄λΈ”κ³Ό 폼 컨트둀이 μ—°κ²°λ˜λ©΄ λ ˆμ΄λΈ”μ„ 선택해도 ν•΄λ‹Ήν•˜λŠ” 폼 컨트둀이 μ„ νƒλœ 것과 같이 μž‘λ™ν•œλ‹€. μ΄λŸ¬ν•œ 점 λ•Œλ¬Έμ— μ‚¬μš©μžλŠ” 클릭 ν•  수 μžˆλŠ” μ˜μ—­μ΄ 더 λ„“μ–΄μ Έ 폼을 μ‰½κ²Œ μ‚¬μš©ν•  수 있게 λœλ‹€.

4. select

<select> λ“œλ‘­λ‹€μš΄ 리슀트 λ°•μŠ€λ₯Ό μƒμ„±ν•œλ‹€. μ„ νƒν•΄μ•Όν•˜λŠ” 리슀트 λ°•μŠ€μ•ˆμ˜ μ•„μ΄ν…œμ„ λ§Œλ“€ λ•Œμ—λŠ” <option> νƒœκ·Έλ₯Ό μ‚¬μš©ν•œλ‹€.

<form action="">
  <label for="travCountry">λ°©λ¬Έν•  κ΅­κ°€λ₯Ό μ„ νƒν•˜μ„Έμš”</label>
  <select name="country" id="travCountry">
    <option value="KR">λŒ€ν•œλ―Όκ΅­</option>
    <option value="US">λ―Έκ΅­</option>
    <option value="FR">ν”„λž‘μŠ€</option>
  </select>
</form>
λ°©λ¬Έν•  κ΅­κ°€λ₯Ό μ„ νƒν•˜μ„Έμš” λŒ€ν•œλ―Όκ΅­ λ―Έκ΅­ ν”„λž‘μŠ€

<select> 속성

  • multiple="multiple" : μ‚¬μš©μžκ°€ μ—¬λŸ¬κ°œμ˜ option μš”μ†Œλ₯Ό 선택할 수 μžˆλ‹€. 단, λ‹¨μˆœ ν΄λ¦­μœΌλ‘œλŠ” μ„ νƒλ˜μ§€ μ•ŠμœΌλ©° windows μ—μ„œλŠ” ctrl, OSX μ—μ„œλŠ” command λ²„νŠΌμ„ λˆ„λ₯΄κ³  클릭해야 μ—¬λŸ¬κ°œλ₯Ό 선택할 수 μžˆλ‹€.
  1. size : λ“œλ‘­λ‹€μš΄ λ¦¬μŠ€νŠΈμ—μ„œ ν•œλ²ˆμ— 보여쀄 수 μžˆλŠ” option의 개수λ₯Ό μ‘°μ ˆν•  수 μžˆλ‹€.

<option> 속성

  • value : 선택값에 따라 μ„œλ²„μ— μ–΄λ– ν•œ 값을 전솑할지 μ„€μ •ν•  수 μžˆλ‹€.
  • selected : 기본으둜 μ„ νƒλ˜λŠ” μ˜΅μ…˜μ„ λ‚˜νƒ€λ‚Έλ‹€. selected μ˜΅μ…˜μ„ μ‚¬μš©ν•˜μ§€ μ•ŠμœΌλ©΄ 첫번째 <option> 이 μ„ νƒλœλ‹€.

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>의 첫번째 μžμ‹μœΌλ‘œ μ‚¬μš©ν•΄μ•Όν•œλ‹€.

7. button

<button> 클릭 κ°€λŠ₯ν•œ λ²„νŠΌμ„ λ‚˜νƒ€λ‚Έλ‹€. λ²„νŠΌμ˜ λͺ¨μŠ΅μ„ λ‹€μ–‘ν•˜κ²Œ μ œμ–΄ν•˜κ³  λ²„νŠΌ 내뢀에 λ‹€λ₯Έ μžμ‹ μš”μ†Œλ₯Ό μΆ”κ°€ν•˜κ³  싢을 λ•Œ μ‚¬μš©ν•œλ‹€.

<button> 의 type

  • submit: λ²„νŠΌμ΄ μ„œλ²„λ‘œ 양식 데이터λ₯Ό μ œμΆœν•œλ‹€. μ§€μ •ν•˜μ§€ μ•Šμ€ 경우 기본값이며, μœ νš¨ν•˜μ§€ μ•Šμ€ 값일 λ•Œλ„ μ‚¬μš©ν•©λ‹ˆλ‹€. λ•Œλ¬Έμ— form 양식을 μ œμΆœν•˜κΈ° μœ„ν•œ μš©λ„κ°€ μ•„λ‹ˆλΌλ©΄ λ°˜λ“œμ‹œ type을 μ„ μ–Έν•΄μ€μ‹œλ‹€.
  • reset:Β <input type="reset">처럼, form의 λͺ¨λ“  값을 μ΄ˆκΈ°ν™”μ‹œν‚¨λ‹€.
  • button: 클릭 κ°€λŠ₯ν•œ λ²„νŠΌμ„ λ‚˜νƒ€λ‚Έλ‹€.

<button id="search_btn" type="submit" title="검색">
	<span class="blind">검색</span>
	<span class="ico_search_submit"></span>
</button>
검색

8. textarea

μ—¬λŸ¬ μ€„μ˜ textλ₯Ό μž…λ ₯받을 수 μžˆμŠ΅λ‹ˆλ‹€.

  • cols : μž…λ ₯창의 넓이. 기본값은 20이닀.
  • rows : μž…λ ₯쀄 수.
<textarea name="" id="" cols="40" rows="10" maxlength="10" minlength="5"></textarea>

9. datalist

<datalist>λŠ” <select>와 <input> 을 μ„žμ–΄μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ν•©λ‹ˆλ‹€. <input> 의 list 속성을 μ΄μš©ν•΄ <datalist> μš”μ†Œμ˜ id 속성과 μ—°κ²°ν•˜μ—¬ μ‚¬μš©ν•©λ‹ˆλ‹€.

μ‚¬μš©μžμ—κ²Œ 기본적으둜 선택할 수 μžˆλŠ” μ˜΅μ…˜μ„ μ œκ³΅ν•¨κ³Ό λ™μ‹œμ—, λ§Œμ•½ μ˜΅μ…˜μ— μ„ νƒν•˜κ³  싢은 값이 μ—†λŠ” 경우 μ‚¬μš©μž κ°€ μ›ν•˜λŠ” μž„μ˜μ˜ 값을 μž…λ ₯ 받을 수 μžˆλ„λ‘ νŽΈμ˜μ„±μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

    <label for="bookGenres">μ›ν•˜λŠ” λ„μ„œ λΆ„μ•Όλ₯Ό μ„ νƒν•˜μ„Έμš” : </label>
<input type="text" id="bookGenres" list="books" name="books">
<datalist id="books">
    <option value="IT">IT</option>
    <option value="인문">인문</option>
    <option value="역사">역사</option>
    <option value="경제">경제</option>
</datalist>

profile
μ‹€νŒ¨μ— λ¬΄λ”˜ μ‚¬λžŒ. ν”„λ‘ νŠΈμ—”λ“œ 개발자λ₯Ό κΏˆκΏ‰λ‹ˆλ‹€

0개의 λŒ“κΈ€