<input type="number">
<input>
태그의 type="number"
는 숫자 입력 필드를 나타냅니다.
이 필드는 숫자만 입력하거나 선택할 수 있도록 구성되어 있으며, 숫자가 아닌 입력을 거부하는 유효성 검사 기능이 내장되어 있습니다.
대부분의 브라우저에서는 마우스로 숫자를 늘리거나 줄일 수 있는 화살표(혹은 스피너, spinner)를 제공하며, 동적인 키패드가 있는 일부 디바이스(예를 들어, 모바일 디바이스)에서는 숫자 키패드를 표시합니다.
<label for="mumber-to-show">표시할 번호</label>
<input type="number" id="mumber-to-show">
<input type="number">
의 암시적인 role
속성의 값은 spinbutton
입니다.
관련 속성 사용하기
<input type="number">
의 관련된 속성에 대해 알아보겠습니다.
placeholder
속성
placeholder
속성은 값이 설정되지 않은 경우 텍스트 입력 컨트롤에 표시되는 텍스트를 지정합니다. 이것을 '플레이스홀더 텍스트'라고 합니다.
이 값은 컨트롤에 입력해야 하는 예상 데이터 유형에 대해 사용자에게 간단한 힌트를 제공해야 합니다. 사용자가 텍스트를 입력하기 시작하면 플레이스홀더 텍스트가 텍스트 입력 필드에서 사라집니다.
<label for="mumber-to-show">표시할 번호</label>
<input type="number" id="mumber-to-show" placeholder="숫자 입력만 가능...">
플레이스홀더 텍스트의 스타일은 CSS placeholder 텍스트에 스타일 적용하기를 참조하세요.
value
속성
value
속성은 필드에 입력된 숫자의 초깃값을 지정합니다.
<label for="mumber-to-show">표시할 번호</label>
<input type="number" id="mumber-to-show" value="7">
min
속성
min
속성은 필드에 입력할수 있는 숫자의 최솟값을 지정합니다.
max
속성이 지정되어 있다면 min
속성의 값은 max
속성의 값보다 작거나 같아야 합니다.
알아두세요!
이 최솟값 지정은 마우스로 숫자를 늘리거나 줄일 수 있는 화살표(혹은 스피너, spinner)를 사용할 경우에 브라우저가 유효성 검사를 실시해서 최솟값보다 작은 수로 줄일 경우 거부하는 기능입니다. 그런데, 사용자가 최솟값보다 작은 수를 직접 입력할 경우에는 유효성 검사를 실시해서 거부하는 기능을 구현하지 못하고 실패합니다.
<label for="mumber-to-show">표시할 번호</label>
<input type="number" id="mumber-to-show" min="0" value="7">
min
속성에 유효한 숫자가 아닌 값이 지정되면 최솟값이 지정되지 않습니다.
8-1
는 유효한 숫자가 아닌 값입니다.
<label for="mumber-to-show">표시할 번호</label>
<input type="number" id="mumber-to-show" min="8-1" value="7">
max
속성
max
속성은 필드에 입력할수 있는 숫자의 최댓값을 지정합니다.
min
속성이 지정되어 있다면 max
속성의 값은 min
속성의 값보다 크거나 같아야 합니다.
알아두세요!
이 최댓값 지정은 마우스로 숫자를 늘리거나 줄일 수 있는 화살표(혹은 스피너, spinner)를 사용할 경우에 브라우저가 유효성 검사를 실시해서 최댓값보다 큰 수로 늘릴 경우 거부하는 기능입니다. 그런데, 사용자가 최댓값보다 큰 수를 직접 입력할 경우에는 유효성 검사를 실시해서 거부하는 기능을 구현하지 못하고 실패합니다.
<label for="mumber-to-show">표시할 번호</label>
<input type="number" id="mumber-to-show" max="10" value="7">
max
속성에 유효한 숫자가 아닌 값이 지정되면 최댓값이 지정되지 않습니다.
9+1
은 유효한 숫자가 아닌 값입니다.
<label for="mumber-to-show">표시할 번호</label>
<input type="number" id="mumber-to-show" max="9+1" value="7">
step
속성
step
속성은 숫자 값의 증감 간격을 지정합니다. 숫자 값을 가집니다.
step
속성이 지정되어 있지 않을 경우 step
속성 속성의 기본 값은 1
입니다.
알아두세요!
이 증감 간격 지정은 마우스로 숫자를 늘리거나 줄일 수 있는 화살표(혹은 스피너, spinner)를 사용할 경우에 브라우저가 유효성 검사를 실시해서 자동으로 즘감하는 기능입니다. 그런데, 사용자가 숫자를 직접 입력할 경우에는 유효성 검사를 실시해서 자동으로 증감하는 기능을 구현하지 못하고 실패합니다.
<label for="mumber-to-show">표시할 번호</label>
<input type="number" id="mumber-to-show" value="7" step="2">
min
이나 max
속성이 지정되어 있을 경우 브라우저는 가장 가까운 유효한 값을 증감 간격으로 조정하여 진행할 수 있습니다.
<label for="mumber-to-show">표시할 번호</label>
<input type="number" id="mumber-to-show" value="7" step="2" min="0" max="10">
이 밖에도 사용할 수 있는 관련 속성들이 다양하게 있습니다.
HTML <input> 태그의 여러 가지 속성들을 참조하세요!
소수점 사용하기
지금까지 살펴본 <input type="number">
의 예제는 모두 정수 값을 사용한 것입니다. 소수점을 사용하려면 아래의 예제와 같이 value
와 step
속성의 값을 소수점이 있는 숫자로 지정하면 됩니다.
<label for="mumber-to-show">표시할 번호</label>
<input type="number" id="mumber-to-show" value="7.0" step="0.1">
화살표(혹은 스피너, spinner) 제거하기
<input type="number">
는 대부분의 브라우저에서는 마우스로 숫자를 늘리거나 줄일 수 있는 화살표(혹은 스피너, spinner)를 제공합니다. 마우스 커서를 요소에 올려 놓으면 이 화살표 버튼이 표시됩니다.

디자인적인 측면이나, 기능적인 측면을 고려해서 이 화살표(혹은 스피너, spinner)를 CSS로 제거할 수 있습니다.
이 기능은 비표준입니다.
모든 사용자에게 적합하지 않을 수도 있습니다. 구현 간에 호환되지 않는 부분이 많을 수도 있으며 향후 동작이 변경될 수도 있습니다.
/* Firefox 브라우저용 사용자 정의 스타일 */
[type="number"] {
-moz-appearance: textfield;
}
/* 그 외(Chrome, Safari, Edge...)의 브라우저용 사용자 정의 스타일 */
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
<label for="mumber-to-show">표시할 번호</label>
<input type="number" id="mumber-to-show" value="7">
접근성 고려사항
<input type="number">
를 사용할 때에는 <label>
을 함께 사용해야 합니다.
자세한 사항은 <input> 태그의 접근성 고려사항을 참조하세요.
브라우저 호환성
속성 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
<input type="number"> |
7 | 12 | 29 | 5.1 |
placeholder
|
3 | 12 | 4 | 4 |
min
|
4 | 12 | 16 | 5 |
max
|
4 | 12 | 16 | 5 |
step
|
5 | 12 | 16 | 5 |
명세서
명세서 사양 | |
---|---|
<input type="number">
|
HTML Standard #number-state-(type=number) |