ELEMENTS

Editing
  • account_tree
  • bug_report

<input>

입력 방식이 지정된 데이터 필드를 나타내며 일반적으로 사용자가 편집할 수 있는 양식 컨트롤을 나타낸다.

  • 콘텐츠 분류

    AUTOCAPITALIZE INHERITING, FLOW CONTENT, INTERACTIVE CONTENT, LABELABLE, LISTED, PALPABLE CONTENT, PHRASING CONTENT, RESETTABLE, SUBMITTABLE

    <input> 요소는 양식 지원(form associated) 요소이며 type 애트리뷰트에 따라 다음과 같이 세분화 된다.

    • hidden이 아닌 경우 : 레이블 가능(labelable), 나열(listed)된 콘텐츠, 제출 가능(submittable), 재설정 가능(resettable), 인터랙티브 콘텐츠(interactive content), 명확한 콘텐츠(palpable content), 자동 대문자 상속(autocapitalize-inheriting)으로 세분류 된다.
    • hidden인 경우 : 나열(listed)된 콘텐츠, 제출 가능(submittable), 재설정 가능(resettable), 자동 대문자 상속(autocapitalize-inheriting)으로 세분류 된다
  • 허용된 부모 요소 또는 위치

    PHRASING CONTENT

    구문 콘텐츠(phrasing-content)가 예상되는 위치

  • 콘텐츠 모델

  • 태그 생략

    종료 태그 생략 가능

  • DOM Interface

    HTMLInputElement

    [Exposed=Window]
    interface HTMLInputElement : HTMLElement {
      [HTMLConstructor] constructor();
    
      [CEReactions] attribute DOMString accept;
      [CEReactions] attribute DOMString alt;
      [CEReactions] attribute DOMString autocomplete;
      [CEReactions] attribute boolean defaultChecked;
      attribute boolean checked;
      [CEReactions] attribute DOMString dirName;
      [CEReactions] attribute boolean disabled;
      readonly attribute HTMLFormElement? form;
      attribute FileList? files;
      [CEReactions] attribute USVString formAction;
      [CEReactions] attribute DOMString formEnctype;
      [CEReactions] attribute DOMString formMethod;
      [CEReactions] attribute boolean formNoValidate;
      [CEReactions] attribute DOMString formTarget;
      [CEReactions] attribute unsigned long height;
      attribute boolean indeterminate;
      readonly attribute HTMLDataListElement? list;
      [CEReactions] attribute DOMString max;
      [CEReactions] attribute long maxLength;
      [CEReactions] attribute DOMString min;
      [CEReactions] attribute long minLength;
      [CEReactions] attribute boolean multiple;
      [CEReactions] attribute DOMString name;
      [CEReactions] attribute DOMString pattern;
      [CEReactions] attribute DOMString placeholder;
      [CEReactions] attribute boolean readOnly;
      [CEReactions] attribute boolean required;
      [CEReactions] attribute unsigned long size;
      [CEReactions] attribute USVString src;
      [CEReactions] attribute DOMString step;
      [CEReactions] attribute DOMString type;
      [CEReactions] attribute DOMString defaultValue;
      [CEReactions] attribute [LegacyNullToEmptyString] DOMString value;
      attribute object? valueAsDate;
      attribute unrestricted double valueAsNumber;
      [CEReactions] attribute unsigned long width;
    
      undefined stepUp(optional long n = 1);
      undefined stepDown(optional long n = 1);
    
      readonly attribute boolean willValidate;
      readonly attribute ValidityState validity;
      readonly attribute DOMString validationMessage;
      boolean checkValidity();
      boolean reportValidity();
      undefined setCustomValidity(DOMString error);
    
      readonly attribute NodeList? labels;
    
      undefined select();
      attribute unsigned long? selectionStart;
      attribute unsigned long? selectionEnd;
      attribute DOMString? selectionDirection;
      undefined setRangeText(DOMString replacement);
      undefined setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
      undefined setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
    
      undefined showPicker();
    
      // also has obsolete members
    };
    HTMLInputElement includes PopoverInvokerElement;

구문

마크업 형식
<input>
Example

애트리뷰트

accept comma-separated tokens

허용되는 파일 유형에 대한 힌트를 유저 에이전트에게 제공하기 위해 지정될 수 있다. type 애트리뷰트가 file인 경우에 사용이 가능하다.

아래에 예시된 유형 이외의 유효한 MIME 유형을 지정하거나 세부적인 파일 확장자를 지정할 수도 있다. 파일 확장자의 경우는 첫 문자가 닷(.)이어야 한다.

About Comma-separated tokens

콤마(,)로 구분된 토큰 목록을 나타낸다.

구문 예

공통으로 사용하는 애트리뷰트의 경우 구문에 사용된 요소가 다를 수 있다.

구문 형식
accept="[audio/* | image/* | video/* | <MIMEType> | <FILE_EXTENSION>]#"
Example
<input type="file" accept=".doc,.docx,application/msword">

사용되는 키워드

audio/*

오디오 파일이 허용됨을 나타낸다.

image/*

이미지 파일이 허용됨을 나타낸다.

video/*

비디오 파일이 허용됨을 나타낸다.

alt string

지정된 요소의 대체 텍스트를 나타낸다.

이 요소에서의 특징

type 애트리뷰트가 image인 경우에 이미지를 가져올 수 없을 때 대체 텍스트를 나타낸다.

autocomplete keywords and enumerated attributes

양식(form) 내에 있는 입력 요소들의 자동 채우기 설정을 지정한다. 자동 채우기는 다음과 같이 두 가지 방식이 가능하다.

자동 완성 기대 맨틀(autofill expectation mantle)
사용자로부터 예상되는 입력을 나타낸다. 설정하는 방법은 on 키워드는 활성되고 off 키워드는 비활성된다. 생략될 수 있으며 생략되거나 유효하지 않은 경우에 기본값은 on이다. type 애트리뷰트가 hidden이 아닌 경우 사용된다.
자동 완성 앵커 맨틀(autofill anchor mantle)
주어진 값의 의미를 설명한다. 자동 완성 세부 토큰으로 구성된 공백으로 구분된 토큰의 정렬된 집합인 값을 가져야 한다. onoff 키워드는 사용할 수 없다. type 애트리뷰트가 hidden인 경우 사용된다.

지금까지의 내용은 HTML Standard 표준 사양에 나와있는 내용이지만 자동 완성 앵커 맨틀(autofill anchor mentle)에 대해 다음과 같은 이슈가 있다.

  • typehidden인 요소에게 자동 완성 기능 적용이 올바른가? [open issue]
  • 유저 에이전트에서의 동작 지원 여부가 명확하지 않다.

현재로서는 이 이슈에 대해 앞으로 시간을 두고 확인이 필요해 보이며 일반적인 자동 완성 기능인 자동 완성 기대 맨틀(autofill expectation mantle)의 구현을 위한 애트리뷰트라고 보는 편이 나을 것 같다.

기본값

on

사용 예

<input type="text" autocomplete="off">
checked boolean attributes

type 애트리뷰트가 checkbox이거나 radio일 때 유저 에이전트는 해당 요소가 선택된 상태로 처리한다.

About Boolean attributes

불리언(boolean) 값을 나타낸다. 다음 불리언 값을 갖는 애트리뷰트인 disabled를 예를 들어 다음 세 가지 값은 모두 참(true)이다.

<input disabled>, <input disabled="disabled">, <input disabled="">

사용 예

<input type="checkbox" checked>
dirname 

양식(form)을 제출시 입력된 텍스트의 쓰기 방향(dir 애트리뷰트)을 참조한다.

disabled boolean attributes

요소를 비활성화한다.

About Boolean attributes

불리언(boolean) 값을 나타낸다. 다음 불리언 값을 갖는 애트리뷰트인 disabled를 예를 들어 다음 세 가지 값은 모두 참(true)이다.

<input disabled>, <input disabled="disabled">, <input disabled="">

사용 예

form unique identifier

<form> 요소와 연결할 때 연결하고자 하는 <form> 요소의 id를 지정한다.

About Unique identifier

문서에서 요소를 식별하는 유일무이한 문자열 값을 나타낸다.

사용 예

formaction non-empty URL potentially surrounded by spaces

양식(form)이 제출될 때 서버쪽 처리 페이지 URL을 해당 <form> 요소가 아닌 지정 가능한 요소에서 지정한다. 명시되지 않은 경우 해당 <form> 요소에 명시된 action 애트리뷰트의 서버쪽 처리 페이지 URL로 전송된다.

About Non-empty URL potentially surrounded by spaces

문자열에서 선행 및 후행 ASCII 공백을 제거한 후 유효한 비공백 URL인 경우 문자열은 공백으로 둘러싸일 수 있는 유효한 비공백 URL을 나타낸다.

formenctype keywords and enumerated attributes

양식(form)이 제출될 때 값의 인코딩 유형을 해당 <form> 요소가 아닌 지정 가능한 입력 요소에서 지정한다. 명시되지 않은 경우 해당 <form> 요소의 enctype 애트리뷰트에서 지정된 인코딩 유형으로 전송된다.

사용되는 키워드

application/x-www-form-urlencoded

양식 전송의 기본 유형이다. 텍스트를 인코딩(encoding)하여 전송한다. 공백은 +, 알파벳과 숫자가 아닌 특수 문자들은 모두 퍼센트 인코딩(percent encoding)을 한다.

양식 예
<form>
  <input type="text" name="name" value="Eric Clapton">
  <input type="text" name="formula" value="a + b == 13%!">
</form>
인코딩(encodeing)하여 전송하는 형식
name=Eric%20Clapton&formula=a%20%2B%20b%20%3D%3D%2013%25%21
multipart/form-data

데이터 전송시 텍스트를 포함하여 바이너리(binary) 데이터를 함께 전송한다. 문자열은 인코딩(encoding)하지 않고 바이너리(binary) 데이터와 함께 헤더(header)에 포함하여 전송한다.

GET 방식으로 전송할 수 없으며 POST 방식으로만 가능하다.

text/plain

텍스트만 전송이 가능하며 공백만 +로 인코딩한다.

formmethod enumerated attribute

양식(form)이 제출될 때 전송 방식을 해당 <form> 요소가 아닌 지정 가능한 입력 요소에서 지정한다. 명시되지 않은 경우 해당 <form> 요소의 method 애트리뷰트에서 지정된 인코딩 유형으로 전송된다.

About Enumerated attribute

제한된 값 집합으로 구성된 데이터를 나타낸다. 값 설정을 위한 다양한 방식이 존재할 수 있다.

사용되는 키워드

dialog

양식(form)이 있는 <dialog> 요소에서 지정할 수 있으며 사용자가 누른 전송 버튼에 따라 처리를 분기하고자 할 때 사용할 수 있다.

사용자가 누른 전송 버튼의 값은 HTMLDialogElement 인터페이스의 returnValue 프로퍼티로 접근이 가능하다.

GET

양식(form)의 action URL 뒤에 붙여 쿼리 스트링(query string) 형식으로 전송한다. 기본 URL을 포함하여 최대 255개의 문자를 전송할 수 있다.

데이터가 노출되어 전송이 되기 때문에 보안에 취약하니 보안이 필요한 데이터는 절대 피한다. 캐시(cache)가 되므로 재전송이 가능하며 똑같은 결과를 가져온다. URL의 일부이기 때문에 특정 데이터에 따라 차별되는 웹페이지를 호출할 수 있다.

POST

전송 프로토콜(protocol)의 헤더(header)에 정해진 규약에 따라 데이터가 포함되어 전송된다. 외부에 직접적으로 노출되지 않기 때문에 GET 방식보다는 보안이 덜 취약하다. 바이너리(binary) 데이터를 전송할 수 있는 환경을 제공하기 때문에 파일을 전송하고자 할 때는 enctypemultipart/form-data로 설정하면 된다.

GET과 달리 캐시(cache)가 안되며 재전송을 암묵적(보통 유저 에이전트의 확인 절차가 있으나 절대 금지가 아님)으로 금지하지만 정상적인 재전송이 이루어지는 경우 중복처리가 될 수 있으므로 재전송을 방지하는 인터페이스가 필요하다.

formnovalidate boolean attributes

명시된 요소의 입력된 값이 제출될 때 입력된 데이터의 유효성 검사를 하지 않는다. 명시되지 않은 경우 상위 <form> 요소의 설정을 따라간다.

About Boolean attributes

불리언(boolean) 값을 나타낸다. 다음 불리언 값을 갖는 애트리뷰트인 disabled를 예를 들어 다음 세 가지 값은 모두 참(true)이다.

<input disabled>, <input disabled="disabled">, <input disabled="">

formtarget navigable target names or keywords

양식(form)이 제출될 때 action 또는 formaction 애트리뷰트에 설정된 서버쪽 처리 페이지를 여는 방식을 해당 <form> 요소가 아닌 지정 가능한 입력 요소에서 지정한다. 명시되지 않은 경우 해당 <form> 요소의 target 애트리뷰트에서 지정된 방식으로 연다.

사용되는 키워드

_blank

새로 생성한 창(또는 탭)에 보여준다.

_parent

현재 페이지가 프레임 안에 존재하는 경우 부모 프레임(창)에서 보여준다.

_self

현재 창에서 보여준다.

_top

현재 문서가 프레임 안에 존재하는 경우를 포함하여 다수의 프레임이 연관되어 있다면 최상위 프레임(창)에서 보여준다.

height dimension attribute

요소의 시각적 세로 크기를 CSS의 픽셀(pixels)을 기본 단위로 해서 지정한다. 음수가 아닌 유효한 정수여야 한다.

list unique identifier

입력 요소의 입력 방식을 미리 정의된 목록(<datalist>)으로 지정한다.

About Unique identifier

문서에서 요소를 식별하는 유일무이한 문자열 값을 나타낸다.

사용 예

max value sanitization algorithm

요소에게 입력이 허용된 범위에서 최대값을 나타낸다.

About Value sanitization algorithm

입력된 값을 대상으로 내부적으로 필요에 따라 형 변환 알고리즘이 작동한다. 값의 형태에 따라 범위에 대한 연산이 필요하거나 증감되는 연산이 필요한 경우에 다음과 같이 알고리즘이 동작한다.

  • string에서 numbernumber에서 string으로 변환
  • string에서 Date 오브젝트로 Date 오브젝트에서 string으로 변환

이러한 연산으로 제약 기준을 지정하는 애트리뷰트는 max, min, step이 있다.

maxlength non-negative integers

최대 입력 길이를 나타낸다.

About Non-negative integers

음수가 아닌 유효한 정수를 나타낸다.

min value sanitization algorithm

요소에게 입력이 허용된 범위에서 최소값을 나타낸다.

About Value sanitization algorithm

입력된 값을 대상으로 내부적으로 필요에 따라 형 변환 알고리즘이 작동한다. 값의 형태에 따라 범위에 대한 연산이 필요하거나 증감되는 연산이 필요한 경우에 다음과 같이 알고리즘이 동작한다.

  • string에서 numbernumber에서 string으로 변환
  • string에서 Date 오브젝트로 Date 오브젝트에서 string으로 변환

이러한 연산으로 제약 기준을 지정하는 애트리뷰트는 max, min, step이 있다.

minlength non-negative integers

최소 입력 길이를 나타낸다.

About Non-negative integers

음수가 아닌 유효한 정수를 나타낸다.

multiple boolean attributes

두 개 이상의 값을 지정할 수 있는 여부를 나타낸다.

About Boolean attributes

불리언(boolean) 값을 나타낸다. 다음 불리언 값을 갖는 애트리뷰트인 disabled를 예를 들어 다음 세 가지 값은 모두 참(true)이다.

<input disabled>, <input disabled="disabled">, <input disabled="">

name non empty string

요소의 이름을 지정한다. 유저 에이전트(user agent)에서 식별값으로 사용되며 입력 요소에 지정된 name의 값은 서버에 전송시 데이터를 식별하는 이름으로 사용된다. 식별값으로 사용되지만 유일무이한 값으로 강제하지는 않는다. 그러한 이유는 <input type="checkbox"> 요소를 통해 이해할 수 있다. 체크박스 입력 방식은 준비된 동일한 이름의 데이터에서 다른 값을 선택하는 식이다. 따라서 값은 달라도 데이터의 이름은 동일할 수 있다.

<form> 요소에서 name 애트리뷰트가 HTML5에서 폐기되었다. 대신에 id 애트리뷰트를 식별값으로 사용한다.
About Non empty string

비워있지 않는 문자열을 나타낸다.

pattern compiled pattern regular expression

입력된 값을 검사할 정규식을 지정한다.

About Compiled pattern regular expression

자바스크립트의 RegExp 객체를 나타낸다.

placeholder strip newline

입력 요소에 입력할 값에 대한 힌트를 사용자에게 제시한다.

About Strip newline

U+000A LF(줄바꿈) 또는 U+000D CARRIAGE RETURN(CR) 문자를 포함하지 않은 문자열을 나타낸다.

popovertarget unique identifier

동일한 트리에서 popover 애트리뷰트가 있는 토글(toggle), 표시, 숨길 팝오버 요소의 id를 지정한다.

About Unique identifier

문서에서 요소를 식별하는 유일무이한 문자열 값을 나타낸다.

popovertargetaction enumerated attribute

대상 팝오버(popover) 요소의 토글(toggle), 표시(show) 또는 숨김(hide) 여부를 나타낸다.

About Enumerated attribute

제한된 값 집합으로 구성된 데이터를 나타낸다. 값 설정을 위한 다양한 방식이 존재할 수 있다.

사용되는 키워드

hide

대상 팝오버(popover) 요소를 숨긴다.

show

대상 팝오버(popover) 요소를 표시한다.

toggle

대상 팝오버(popover) 요소를 표시하거나 숨긴다.

readonly boolean attributes

입력 요소에 대한 편집 가능 여부를 나타낸다. 지정이 되면 편집이 불가능하다.

About Boolean attributes

불리언(boolean) 값을 나타낸다. 다음 불리언 값을 갖는 애트리뷰트인 disabled를 예를 들어 다음 세 가지 값은 모두 참(true)이다.

<input disabled>, <input disabled="disabled">, <input disabled="">

required boolean attributes

필수로 입력해야 할 입력 요소로 지정할지 여부를 나타낸다. 지정이 되면 필수 입력 요소가 된다.

About Boolean attributes

불리언(boolean) 값을 나타낸다. 다음 불리언 값을 갖는 애트리뷰트인 disabled를 예를 들어 다음 세 가지 값은 모두 참(true)이다.

<input disabled>, <input disabled="disabled">, <input disabled="">

size non-negative integers

문자열을 입력하는 동안 가려지지 않고 볼 수 있는 문자 수를 나타낸다. 요소의 입력 방향 크기에 관여하지만 엄밀히 디자인적인 애트리뷰트는 아니다. 0보다 큰 값이며 기본 값은 20이다.

About Non-negative integers

음수가 아닌 유효한 정수를 나타낸다.

기본값

20
src non-empty URL potentially surrounded by spaces

type 애트리뷰트의 값이 image인 경우에 버튼으로 표시할 이미지의 리소스를 지정한다.

About Non-empty URL potentially surrounded by spaces

문자열에서 선행 및 후행 ASCII 공백을 제거한 후 유효한 비공백 URL인 경우 문자열은 공백으로 둘러싸일 수 있는 유효한 비공백 URL을 나타낸다.

step floating-point numbers

허용되는 값을 제한하여 값의 세분성을 지정한다.

type enumerated attribute

<input>요소에서 입력 유형을 지정한다.

About Enumerated attribute

제한된 값 집합으로 구성된 데이터를 나타낸다. 값 설정을 위한 다양한 방식이 존재할 수 있다.

기본값

text

사용되는 키워드

checkbox

단일 값을 하나 이상 선택하거나 해제할 수 있는 체크박스 입력 요소를 생성한다.

color

색상을 지정할 수 있는 입력 요소를 표시한다.

date

날짜(연,월,일)를 지정할 수 있는 입력 요소를 생성한다.

datetime-local

날짜와 시간을 지정할 수 있는 입력 요소를 생성한다.

email

이메일 주소를 입력할 수 있는 입력 요소를 생성한다. 양식 제출 단계에서 유저 에이전트가 유효성 검증을 한다.

file

업로드할 바이너리 파일을 지정할 수 있는 입력 요소를 생성한다.

hidden

화면에 표시되지 않는 서버에 전송 가능한 입력 요소를 생성한다.

month

연도와 월을 지정할 수 있는 입력 요소를 생성한다.

number

숫자를 입력하기 위한 입력 요소를 생성한다.

password

보안상의 이유로 입력값이 가려지는 입력 요소를 생성한다.

radio

여러 개의 제시된 데이터 중에서 하나를 선택할 수 있는 입력 요소를 생성한다.

range

슬라이더를 이용해서 일정 구간의 숫자를 입력할 수 있는 입력 요소를 생성한다.

search

검색 문자열을 입력할 수 있는 입력 요소를 생성한다. 줄바꿈 문자는 입력값에서 자동으로 제거된다.

tel

전화번호를 입력하는 입력 요소를 생성한다. urlemail 타입과 달리 유저 에이전트가 양식의 제출 단계에서 유효성 검증을 하지 않는다. 이는 전화번호의 형식이 지역마다 상이할 수 있기 때문에 자유 형식을 취하고 있다. 만약에 지역적으로 유효성 검증을 적용해야 한다면 DOM API에서 setCustomValidity() 메소드를 사용한다.

text

한줄 텍스트를 입력할 수 있는 필드를 나타낸다. 기본 형식이다.

time

시간대가 없는 시간 값을 입력하는 입력 요소를 생성한다.

url

URL을 입력하는 입력 요소를 생성한다. 양식 제출 단계에서 유저 에이전트가 유효성 검증을 한다.

week

시간대가 없는 연도와 주로 구성된 값을 입력할 수 있는 입력 요소를 생성한다.

value 

입력 요소의 기본 값을 지정한다.

width dimension attribute

요소의 시각적 가로 크기를 CSS의 픽셀(pixels)을 기본 단위로 해서 지정한다. 음수가 아닌 유효한 정수여야 한다.

title string

요소에 대한 필요한 정보를 나타내는 텍스트이며 마우스 포인터를 올리면 말풍선으로 내용을 출력한다.

구문 예

공통으로 사용하는 애트리뷰트의 경우 구문에 사용된 요소가 다를 수 있다.

마크업 형식
<img src="/rose.jpg" title="The red rose." />

이 요소에서의 특징

pattern 애트리뷰트가 설정된 경우 패턴을 설명하는 의미로 사용된다.

글로벌 애트리뷰트

일부 글로벌 애트리뷰트는 이 요소에서 사용되지 않을 수 있다.

글로벌 이벤트 핸들러

일부 글로벌 이벤트 핸들러는 이 요소에서 사용되지 않을 수 있다. 이벤트 등록은 자바스크립트 사용을 권장한다.

버전 명세

HTML Standard
#the-input-element

지원 웹브라우저