본문 바로가기
html,css 기초

html 7 : 폼 form, action, method, label, fieldset, legend, input 속성

by 슈퍼 루키 2022. 7. 10.

form

- 사용자가 정보를 입력할 수 있게 장치를 만들어 줌
- 다른 페이지나 서버로 전송할 수 있게 해줌

 

form 특성

1. action

- 폼 데이터를 보낼 주소를 입력함

- 절대 경로 또는 상대 경로 

 

2. method

- 양식을 제출 HTTP 메서드(서버 개념을 이해해야 함 아직은 저두 몰라유)

- GET : 보내려고 하는 주소 뒤에 어떤 데이터를 입력했는지 보여지게 됨

- 데이터가 보여지기 때문에 검색창 등에 사용됨

- POST : 주소창에 입력한 정보가 보이지 않음

- 보낸 요청이 주소로 보이지 않게 숨겨서 보내짐

  <form action="" method="get">
    <input type="text" name="test">
    <button type="submit">제출</button>
  </form>

  <form action="" method="POST">
    <input type="text" name="test">
    <button type="submit">제출</button>
  </form>

 

3. label

- input : 사용자가 정보를 입력할 수 있는 영역 

- label : 어떤 정보를 입력할지 설명함

- for 속성을 이용해 어떤 input을 가리키는지 명시함

- input에 id 속성을 이용해 찾아줌, id는 한 문서 내에서는 겹치면 안됨

- label과 input을 형제 관계로 사용할 때는 for, id 명시

- label의 자식 요소로 input을 사용할 때는 for, id 필요없음

 

fieldset, legend

- fieldset : 여러개의 label, input을 묶어서 표현할 때

- legend : 범례

- fieldset 첫번째 자식으로 legend 사용해야 함

- fieldset 사용하면 input 하나하나를 제어하지 않고 한 번에 가능함

<form action="" method="get">
    <fieldset disabled>
      <legend>범례1</legend>

      <div>
        <label for="foodname">음식 이름 :</label>
        <input type="text" name="food" id="foodname">
      </div>

      <div>
        <label for="color">색깔 :</label>
        <input type="text" name="color" id="color">
      </div>
    </fieldset>
      
    <fieldset>
      <legend>범례2</legend>

      <div>
        <label for="foodname">음식 이름 :</label>
        <input type="text" name="food" id="foodname">
      </div>

      <div>
          <label for="color">색깔 :</label>
          <input type="text" name="color" id="color">
      </div>
    </fieldset>

    <button type="submit">제출</button>
  </form>

 

input 속성과 관련

1. minlength, maxlength

- 최소 글자수와 최대 글자수를 지정할 수 있음

 

2. password

- 자동으로 마스킹 되어 보임

 

3. email

- 이메일 형식이 맞지 않을 때 경고창을 띄워줌

- 모바일에서는 자동으로 영문 키패드를 띄워주는 경우가 많음

 

4. tel

- 모바일에서는 자동으로 숫자 키패드를 띄워주는 경우가 많음

 <form action="" method="get">
    <div>
      <label>PASSWORD
        <input type="password" name="pwd" minlength="5" maxlength="10">
      </label>
    </div>

    <div>
      <label>EMAIL
        <input type="email" name="email">
      </label>
    </div>

    <div>
      <label>TEL
        <input type="tel" name="tel">
    </div>

    <button type="submit">제출</button>
  </form>

5. number

- 숫자만 입력할 수 있음

 

6. range 

- 바가 나와 정도를 조절할 수 있음

- 숫자의 값으로 변환되서 제출됨

 

7. date

- 년, 월, 일 날짜를 선택할 수 있음

 

8.time

- 오전/오후 시간을 선택할 수 있음

  <form action="" method="get">
    
    <div>
      <label>NUMBER : 
        <input type="number" name="number">
      </label>
    </div>

    <div>
      <label>RANGE : 
        <input type="range" name="range">
      </label>
    </div>

    <div>
      <label>Date : 
        <input type="date" name="date">
      </label>
    </div>

    <div>
      <label>Time : 
        <input type="time" name="time">
      </label>
    </div>

  </form>

 

9. submit

- 제출할 수 있는 버튼을 만들 수 있으며 기본값은 '제출'

- value로 문구를 변경할 수 있음

 

10. button

- 버튼 형태를 띄지만 기능은 없음

  <form action="" method="get">
    
    <input type="submit" value="제출하기">
    <input type="button" value="빈 버튼">

  </form>

 

11. reset

- 폼 내부에 있는 정보가 기본값으로 돌아가며 기본 문구는 '초기화'

 

12. checkbox

- 체크할 수 있는 박스를 만듬

- checked 속성을 이용하면 자동으로 체크함

 

13. radio

- name 속성 : 같으면 그 중 하나만 선택 가능, 다르면 여러개 선택 가능

- 같은 name 속성을 사용할 때 value 값으로 구분 

 

14. name

- input에 name을 넣어줘야지만 폼 데이터 상의 구분이 가능함

 

15. placeholder

- 아무 값이 들어있지 않을 때 어떤 정보를 입력할 지 사용자에게 힌트를 줌

 

16. autocomplete

- on / off 로 사용

- 이전에 입력한 적 있던 값을 자동으로 후보로 보여줌

- 설정하지 않으면 브라우저가 설정한 값을 따라감

  <form action="" method="get">
    <div> 
        <label>CHECKBOX
          <input type="checkbox" name="check1">
          <input type="checkbox" name="check1">
          <input type="checkbox" name="check1">
        </label>
    </div>
      
    <div>
        <label>RADIO
          <input type="radio" name="radio" value="r1">
          <input type="radio" name="radio" value="r2">
          <input type="radio" name="radio" value="r3">
        </label>
      </div>

    <div>
        <label>직업</label>
          <input type="text" name="job" placeholder="교사" autocomplete="on">
    </div>

    <input type="submit">
    <input type="reset">

17. required

- required 항목을 비워 제출하면 오류 메시지가 뜨면서 제출이 되지 않음

 

18. disabled

- input 항목이 비활성화

- 폼 전송에 포함되지 않으며 유저가 값을 입력할 수 없음

- js에서 한 항목이 입력되면 다른 항목은 비활성화하게 된다든지 등에 쓰임

 

19. readonly

- 읽기 전용, 입력한 데이터는 사용자가 수정할 수 없지만 폼 데이터 전송은 됨

- value 속성으로 기본값을 넣어줄 수 있음

  <form action="" method="get">

    <div>
        <label for="job">직업</label>
          <input 
            type="text" 
            name="job" 
            id="job"
            placeholder="교사" 
            disabled>
    </div>
    <div>
        <label for="age">나이</label>
          <input 
            type="number" 
            name="age" 
            id="age"
            value="20"
            readonly
          />
    </div>

    <input type="submit">
    </form>

 

20. step, min, max

- number나 range에서 최소값과 최대값을 설정할 수 있음

- step을 설정하면 1씩 늘어나는 값을 다른 값으로 설정할 수 있음 ex) step="2" 0, 2, 4, 6

    <div>
        <label for="age">나이</label>
          <input 
            type="number" 
            name="age" 
            id="age"
            min="0"
            max="10"
            step="2"
          />
    </div>

 

21. button

- input으로 만들 수 있지만 button 태그를 사용하면 버튼에 텍스트 이외의 다양한 html 속성과 이미지를 넣을 수 있음

- 아이콘만 사용해 버튼을 표현할 경우 접근성을 높이기 위해 텍스트 설명을 써야 함

    <button><em>버튼이오</em></button>

 

22. select, option, optgroup

- 여러개의 후보군이 나오고 그 중에서 값을 선택할 수 있음

- option을 통해 후보군 입력

- value를 통해 서버에 전송하고 싶은 값을 입력

- 빈 문자열을 만들고 싶을 때도 value 속성을 이용해야 함

- optgroup : 옵션 여러개를 그룹화할 때 사용

    <label for="movie">좋아하는 영화</label>
    <select name="movie" id="movie" required>
        <option value="">한가지를 고르세요</option>
      <optgroup label="animation">
        <option value="zootooia">주토피아</option>
        <option value="toystory">토이스토리</option>
      </optgroup>
      <optgroup label="action">
        <option value="The Outlaws">범죄도시</option>
      </optgroup>
    </select>

 

23. datalist, list

- 입력할 값을 추천해주며 사용자가 값을 수정할 수 있음

   <label for="movie">좋아하는 영화</label>
    <select name="movie" id="movie" required>
        <option value="">한가지를 고르세요</option>
      <optgroup label="animation">
        <option value="zootooia">주토피아</option>
        <option value="toystory">토이스토리</option>
      </optgroup>
      <optgroup label="action">
        <option value="The Outlaws">범죄도시</option>
      </optgroup>
    </select>

    <label for="movie">좋아하는 영화</label>
    <input type="text" id="movie" name="movie" list="movie-list">

      <datalist id="movie-list">
        <option>주토피아</option>
        <option>토이스토리</option>
        <option>토이스토리2</option>
      </datalist>

 

24. textarea

- 댓글이나 리뷰칸을 만들 때 사용됨

- 안에 있는 내용은 들여쓰기, 개행 등 그대로 반영됨

- input과 다른 점은 빈 요소가 아니라 여러 자식 태그를 가질 수 있음, 여러줄 입력이 가능함

- rows, cols로 행과 열을 조정

반응형

댓글