본문 바로가기
Books/HTML Basic ✔️

[웹 개발 기초 HTML] 4장 - HTML 폼

by Aaron-Kim 2022. 2. 12.

4.1 HTML Form

  - HTML 폼: 사용자로부터 데이터 입력받기 위해 사용

    - 웹 페이지에서 사용자로부터 데이터를 입력받기 위해 사용되는 HTML 요소들의 집합

4.2 HTML Input Types

  - <input type="button">

    - 웹에서 보게 되는 검색, 로그인, 저장 등 버튼 표현하기 위해 사용됨

  - <input type="checkbox">

    - 여러 개의 선택 항목 중에 하나 이상 선택할 수 있는 기능 구현 위해 사용됨

  - <input type="color">

    - 색상 팔레트 선택

  - <input type="date">

    - 달력, 날짜 선택

  - <input type="datetime-local">

    - 날짜와 시간을 현지 시각으로 선택

  - <input type="email">

    - 이메일 주소 입력 받기 위해 사용됨

    - form 태그 안에 작성하면, submit 할 때 email 형식 자동 체크

  - <input type="file">

    - 파일 첨부

    - multiple 속성 지정하면 여러 개의 파일 선택 가능

  - <input type="hidden">

    - 사용자 눈에 보이지 않고 개발자가 숨겨진 데이터 관리하고 싶을 때 사용

    - 사용자에 의해 직접 등록되는 데이터가 아니고,

      시스템적으로 필요한 데이터 등록, 프로그래밍 코드에서 사용하게 되는 경우 많음

  - <input type="image">

    - <img> 태그와는 다르게 input:image는 자체의 버튼 기능 가지고 있음

    - 사용자로부터 클릭 이벤트 받을 수 있고, 이벤트 발생 시 특정 기능 수행 가능

  - <input type="month">

    - 월 선택

  - <input type="number">

    - 숫자 값 입력 받는 용도

    - 숫자 제외한 일반 문자는 입력 안됨

    - 입력 받을 수 있는 최소값과 최대값 지정 가능

  - <input type="password">

    - 비밀번호 입력 받는 용도

  - <input type="radio">

    - 여러 선택 항목 중 하나만 선택

  - <input type="range">

    - 볼륨 조절처럼 정해져 있는 범위 내의 숫자 값을 볼륨 바 형태로 선택

  - <input type="reset">

    - <form> 태그 안에 있는 폼 요소들에 대해 사용자가 입력한 값 초기화

  - <input type="search">

    - 검색 키워드 입력 받는 용도

    - 우측에 x 표시로 입력 취소 가능

  - <input type="submit">

    - <form> 태그 안에 있는 폼 요소의 데이터를 서버/웹 페이지로 전달

  - <input type="tel">

    - 전화번호 입력 받기 위한 폼 요소

    - pattern 속성 사용하면 입력 받을 전화번호의 형식 지정 가능

      - 정규표현식 사용

  - <input type="text">

    - 사용자로부터 데이터 입력 받을 때 가장 많이 사용되는 폼 요소

    - 모든 형태의 문자 입력 받기 가능

  - <input type="time">

    - 사용자로부터 시간을 입력 받을 때 사용

  - <input type="url">

    - 웹 사이트의 주소를 입력 받을 때 사용하는 폼 요소

  - <input type="week">

    - 사용자로부터 몇 번째 주에 해당하는 주인지 입력 받기 가능

4.3 Input type 속성

  - value 속성

    - 사용자로부터 값 입력 받기 전에 초기 값 정의

  - readonly 속성

    - 해당 입력 요소는 초기 설정 값 수정 불가 (읽는 용도로만 사용)

  - disabled 속성

    - 입력 요소 사용 불가

    - readonly vs. disabled

      - readonly 속성은 사용자가 입력된 값을 수정만 못할 뿐 폼을 submit하면 입력된 값 전송 가능

      - disabled 속성은 폼을 submit 해도 전송 안되는 차이 존재

  - maxlength 속성

    - 입력 받을 값의 최대 길이 지정

    - ex. 사용자 ID 길이 제한

  - placeholder 속성

    - 입력 요소의 입력 필드 안에 나타나는 가이드 문자

    - 사용자에게 입력을 어떤 형태로 해야 할지, 또는 입력 필드에 대한 설명을 정의해서 제공 가능

  - required 속성

    - 폼 전송 시, required 속성이 적용된 입력 요소에 입력 값이 없으면 폼 전송 못하게 막음

    - 사용자로부터 입력 받을 값이 필수 값일 때 보통 사용

  - autofocus 속성

    - 사용자가 화면을 열었을 때 입력 요소에 자동으로 마우스 포커스 지정된 상태로 화면 열림

    - ex. 로그인 창 열리면 로그인 ID에 autofocus

  - autocomplete 속성

    - 브라우저 메모리를 이용해서 아이디, 전화번호, 신용카드 번호 등의 데이터를

      사용자의 브라우저 메모리에 저장했다가, 동일한 필드에서 사용자 입력이 진행되면

      이미 등록된 데이터 리스트를 보여주고, 사용자가 빠르게 선택할 수 있도록 하는 기능

  - pattern 속성

    - JS 정규식을 input 요소에 적용해서 입력된 값이 정규식 패턴에 맞는지 자동 체크

    - ex. 전화번호 입력 패턴 규칙 적용

4.4 그 외 Form 요소

  - <label>

    - 사용자 입력 받을 수 있는 요소의 레이블 설정

    - 스크린 리더기 같은 장치를 사용하는 사용자에게 현재 입력할 요소가 어떤 데이터를 입력해야 하는지 알려줌

    - 체크박스, 라디오 버튼 같이 크기가 작아서 사용자가 클릭하기 힘든 요소에 대해서 편리함 제공

  - <select>

    - 콤보박스

    - 여러 개중 하나 선택

    - 라디오 버튼 처럼 하나만 선택할 수도 있고, 체크 박스처럼 여러 개 선택도 가능

    - 선택 항목 수 많아질 때 select 태그 이용하면 고정된 UI 제공할 수 있다는 장점

    - ex. 거주 국가 선택

    - multiple 속성 지정하면 여러 개 선택 가능

    - size 속성은 화면에 한번에 보여줄 아이템 개수 지정

  - <textarea>

    - 여러 줄의 문장 입력 받는 요소

    - rows 속성; 몇 줄 까지 보여줄지 결정

    - cols 속성; 보여지는 넓이

  - <button>

    - 버튼 만들기 위한 태그

    - type 속성은 반드시 "button"으로 설정

    - input:button 에서는 value 값이 버튼 명이 되지만,

      <button> 태그에서는 태그 안에 텍스트가 버튼 명이 됨

  - <fieldset>과 <legend>

    - <fieldset>: 폼 안에서 연관성 있는 요소들을 그룹으로 묶는 역할

    - <legend>: <fieldset>으로 묶인 그룹을 설명하는 그룹 명

  - <datalist>

    - <select> 요소처럼 선택할 수 있는 여러 항목을 보여주고, 하나의 값을 선택할 수 있도록 해줌

    - 직접 텍스트 기입 가능

    - 미리 정의된 항목 리스트에서 하나의 항목 선택 가능

      - 언제든지 내용 수정 가능

    - 여러 개의 input 요소와 연결해서 사용 가능한 장점

    - 만약 주어진 항목 내의 값만 입력받기 원하면

      입력 받은 값이 <datalist> 항목에 있는 값인지 점검하는 로직 구현 필요

4.5 HTML 폼 속성

  - action 속성

    - 폼 submit 시킬 페이지 주소 정의

  - method 속성

    - 폼에 입력된 데이터를 전송할 때 어떤 방식으로 전송할 것이지 정의

      - get 방식

        - 사용자가 입력한 데이터를 전송할 url에 붙여서 전송하는 방식

        - 비밀번호 같은 민감한 정보는 url에 보일 수 있으므로 get 방식 이용하면 안됨

        - 전송하는 데이터 크기 제약 발생 가능 (URL 주소 길이 제한)

        - 북마크 필요할 때 적용하면 효과적임

      - post 방식

        - 보안성 고려

        - 전송하는 데이터가 사용자 눈에 보이지 않음

        - 전송하는 데이터 크기 제약 없음

  - target 속성

    - 폼 데이터 전송할 때, 현재 보고 있는 페이지를 전환해서 전송할 페이지로 이동할지,

      새 창을 이용해서 데이터를 전송할지, iframe을 이용해서 데이터를 전송할지에 대한 target 설정

    - ex. _blank로 속성 값 지정하면 새 창을 통해서 데이터 전송

  - formnovalidate 속성

    - submit 버튼에 사용되는 속성

    - 폼을 submit 할 때 입력된 값이 올바르게 입력되었는지 체크 안할 때 사용

  - novalidate 속성

    - <form> 태그에서 사용하는 속성

    - formnovalidate 속성과 동일한 기능


[Reference]

Source Code - HTML ch 04

개발자의 품격 (유튜브) - HTML

반응형

댓글