[jQuery] 날짜 입력란 포맷 맞춰주기
required:
- jQuery 1.7 or higher
입력한 날짜가 유효하지 않으면 직전의 유효했던 날짜로 바꿔치기 하는 코드.
<input type="text" id="calendarStartDt" maxlength="8" title="검색시작일" value="1970-01-01" />
<input type="text" id="calendarEndDt" maxlength="8" title="검색종료일" value="2012-12-12" />
<script>
$('#calendarStartDt, #calendarEndDt').on({
'keyup': function (event) {
var $ele = $(event.target);
var value = $ele.val().replace(/[^0-9]+/g, "");
$ele.val(value);
if (value.length < 8) {
return;
}
var dateTxt = calendarDtValidate(value);
if (!dateTxt) {
$ele.val($ele.data("value-backup"));
return;
}
$ele.val(dateTxt);
},
'focus': function (event) {
var $ele = $(event.target);
$ele.data("value-backup", $ele.val());
$ele.val("");
},
'blur': function (event) {
var $ele = $(event.target);
if (!calendarDtValidate($ele.val().replaceAll("-", ""))) {
$ele.val($ele.data("value-backup"));
}
}
});
function calendarDtValidate(value) {
if (value.length < 8) {
return null;
}
var dateTxt = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6, 8);
if (isNaN(new Date(dateTxt))) {
return null;
}
return dateTxt;
}
</script>