HTML DOM의 Input Month 객체는 HTML 문서에서 <input type="month"> 요소를 나타냅니다. 이 요소를 사용하면 사용자가 연도와 월을 선택할 수 있는 월(month) 입력 필드를 만들 수 있습니다.
Input Month 객체 생성 방법
JavaScript로 Input Month 객체를 동적으로 생성하는 기본 문법은 다음과 같습니다.
var monthInput = document.createElement("INPUT");
monthInput.setAttribute("type", "month");먼저 document.createElement() 메서드로 INPUT 요소를 생성한 뒤, setAttribute() 메서드를 사용해 type 속성을 "month"로 지정합니다.
주요 속성(Properties)
HTML DOM Input Month 객체가 제공하는 주요 속성은 다음과 같습니다.
| 속성 | 설명 |
|---|---|
| autocomplete | 월 입력 필드의 autocomplete 속성 값을 반환하거나 변경합니다. |
| autofocus | 페이지 로드 시 해당 월 입력 필드에 자동으로 포커스가 설정되는지 여부를 반환하거나 수정합니다. |
| disabled | 월 입력 필드가 비활성화(disabled) 상태인지 여부를 반환하거나 수정합니다. |
| defaultValue | 월 입력 필드의 기본값(default value)을 반환하거나 변경합니다. |
| form | HTML 문서에서 해당 월 입력 필드를 포함하는 폼(form)의 참조를 반환합니다. |
| list | 월 입력 필드가 참조하는 datalist 요소의 참조를 반환합니다. |
| max | 월 입력 필드의 max 속성 값(선택 가능한 최대 월)을 반환하거나 수정합니다. |
| min | 월 입력 필드의 min 속성 값(선택 가능한 최소 월)을 반환하거나 수정합니다. |
| name | 월 입력 필드의 name 속성 값을 반환하거나 변경합니다. |
| readOnly | 월 입력 필드가 읽기 전용(read-only) 상태인지 여부를 반환하거나 수정합니다. |
| required | 폼 제출 전에 해당 월 필드를 반드시 입력해야 하는지 여부를 반환하거나 수정합니다. |
| step | 월 입력 필드의 step 속성 값(월 단위 간격)을 반환하거나 변경합니다. |
| type | 월 입력 필드의 type 속성 값을 반환합니다. 항상 "month"입니다. |
| value | 월 입력 필드의 value 속성 내용을 반환하거나 수정합니다. |
주요 메서드(Methods)
Input Month 객체에서 사용할 수 있는 메서드는 다음 두 가지입니다.
| 메서드 | 설명 |
|---|---|
| stepUp() | 매개변수로 지정한 값만큼 월 입력 필드의 값을 증가시킵니다. |
| stepDown() | 매개변수로 지정한 값만큼 월 입력 필드의 값을 감소시킵니다. |
실전 예제
버튼을 클릭하면 월 입력 필드가 동적으로 생성되는 예제를 살펴보겠습니다.
<!DOCTYPE html>
<html>
<head>
<style>
body{
text-align:center;
background-color:#fff;
color:#0197F6;
}
h1{
color:#23CE6B;
}
.btn{
background-color:#fff;
border:1.5px dashed #0197F6;
height:2rem;
border-radius:2px;
width:60%;
margin:2rem auto;
display:block;
color:#0197F6;
outline:none;
cursor:pointer;
}
</style>
</head>
<body>
<h1>DOM Input Month 객체 예제</h1>
<button onclick="createMonthField()" class="btn">월 입력 필드 생성하기</button>
<script>
function createMonthField() {
var monthInput = document.createElement("INPUT");
monthInput.setAttribute("type", "month");
monthInput.setAttribute("value", "2019-07");
document.body.appendChild(monthInput);
}
</script>
</body>
</html>실행 결과
위 코드를 실행하면 다음과 같은 화면이 출력됩니다.

'월 입력 필드 생성하기' 버튼을 클릭하면, JavaScript 함수가 실행되어 기본값이 '2019-07'로 설정된 월 입력 필드가 페이지에 추가됩니다.

이처럼 HTML DOM의 Input Month 객체를 활용하면 사용자가 직관적으로 연도와 월을 선택할 수 있는 날짜 관련 폼을 손쉽게 구현할 수 있습니다. 특히 구독 시작일, 카드 유효기간 입력 등 월 단위 정보가 필요한 경우에 유용하게 활용됩니다.