jQuery DateTimePicker: 시작일/종료일 연동 구현하기
기간을 선택하는 UI에서는 시작일이 종료일보다 늦을 수 없고, 종료일은 시작일보다 앞설 수 없습니다. 이 가이드는 jQuery DateTimePicker: 시작일/종료일 연동 구현하기를 목표로 onShow 콜백을 활용해 두 필드 간의 유효성 검사를 실시간으로 적용하는 방법을 단계별로 설명합니다.
1. 🌐 HTML 구조 및 라이브러리 준비
날짜/시간 입력용 input 요소를 준비하고, 페이지에 jQuery와 DateTimePicker 플러그인을 포함해야 합니다. 기본 마크업은 간단합니다.
HTML <input> 태그
<!-- 시작일/시간 선택 필드 -->
<input type="text" id="popupSdt" placeholder="시작일시 선택">
<!-- 종료일/시간 선택 필드 -->
<input type="text" id="popupEnd" placeholder="종료일시 선택">
<!-- (참고: jQuery 및 DateTimePicker 플러그인 파일 로드가 필요합니다.) -->
2. 🛠️ JavaScript 시작일/종료일 연동 로직
여기서는 피커가 화면에 보일 때마다 상대 필드의 값을 확인해 자신의 minDate 또는 maxDate를 업데이트합니다. 이렇게 하면 사용자가 유효하지 않은 기간을 선택하지 못하도록 즉시 차단할 수 있습니다.
JavaScript 코드
// 로케일(Locale) 설정: 한국어로 변경
jQuery.datetimepicker.setLocale('kr');
// ====== 1. 시작일/시간 피커 (#popupSdt) 설정 ======
jQuery('#popupSdt').datetimepicker({
format:'Y-m-d H:i', // 날짜/시간 포맷
mask:true, // 마스크 기능 활성화
onShow:function( ct ){
this.setOptions({
// 종료일이 선택되어 있으면, 최대 날짜(maxDate)를 종료일로 제한
// 마스크 기본값일 경우 제한 없음 (false)
maxDate: jQuery('#popupEnd').val() !== "____-__-__ __:__" ? jQuery('#popupEnd').val() : false
});
},
timepicker:true
});
// ====== 2. 종료일/시간 피커 (#popupEnd) 설정 ======
jQuery('#popupEnd').datetimepicker({
format:'Y-m-d H:i',
mask:true,
onShow:function( ct ){
this.setOptions({
// 시작일이 선택되어 있으면, 최소 날짜(minDate)를 시작일로 제한
// 마스크 기본값일 경우 제한 없음 (false)
minDate: jQuery('#popupSdt').val() !== "____-__-__ __:__" ? jQuery('#popupSdt').val() : false
});
},
timepicker:true
});
3. 🔍 핵심 로직 상세 설명
- onShow 콜백: 피커가 열리는 순간마다 실행됩니다. 이 타이밍에 상대 필드의 값을 읽어 조건을 설정하면 사용자 입력을 즉시 제한할 수 있습니다.
- this.setOptions(): 현재 인스턴스의 옵션을 동적으로 바꾸는 메서드입니다. 여기서는
minDate와maxDate를 상황에 맞게 갱신합니다. - maxDate (시작일): 시작일 피커가 열릴 때 종료일 값을 읽어 최대 허용일로 설정하면, 시작일이 종료일을 넘지 못하도록 합니다.
- minDate (종료일): 종료일 피커가 열릴 때 시작일 값을 읽어 최소 허용일로 설정하면, 종료일이 시작일보다 빠르지 않게 제한합니다.
- 빈값 처리:
mask:true를 쓰면 필드에 기본 마스크 문자열이 들어갑니다. 코드에서는 이 기본값과 실제 선택값을 구분해, 선택이 없으면 제한을 해제하도록 처리합니다.
함께 보면 좋은 엔터프라이즈 사례
🚀 이 주제, 우리 서비스에 어떻게 적용할까요?
jQuery DateTimePicker: 시작일/종료일 연동 구현하기를 실제 서비스와 조직에 녹여보고 싶다면, 현재 아키텍처와 운영 방식을 한 번 점검해 보는 것부터 시작해 보세요. 팀 위키나 기술 블로그, 사내 스터디 주제로도 아주 좋습니다.
이 글이 도움이 됐다면, 비슷한 엔터프라이즈 사례 글들도 함께 살펴보면서 우리 조직에 맞는 운영 상용구를 정의해 보세요.
댓글
댓글 쓰기