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