답변 2개 / 댓글 2개
채택된 답변
+20 포인트
간단히 만들어봤는데용 이게 맞는지 모르겠네요
Copy
$(function () {
let input_timer;
$("input[name='inpu_text']").on("input", function () {
let in_value = parseInt($(this).val());
if (input_timer) {
clearTimeout(input_timer);
}
// 키보드 입력 받는 텀 주기위해 타임아웃 설정 입력값 없을시 0.5초 이후 실행
input_timer = setTimeout(function () {
if (in_value > 0) {
if (in_value % 12 !== 0) {
alert("배수 단위로 입력해주세요. Ex) 12, 24, 36...");
return false;
}
}
}, 500);
});
});
답변에 대한 댓글 2개
제이쿼리 아니어서 죄송요.
이런 건 제이쿼리건 바닐라건 input 하나 가지고만 해결하기는 쉽지 않습니다.
onkeyup 등으로 판명을 해도 12를 입력하려면 최초의 1이 12의 배수가 아니라서
1을 입력하는 순간 바로 튕겨내기 때문에 상당히 로직이 어렵습니다.
그래서 일반버튼을 같이 연동하셔야 해요.
Copy
<input id=my name=my>
<button type=button onclick=yes12()>클릭</button>
<script>
function yes12() {
if (my.value == 0 || my.value % 12 != 0) {
alert("12의 배수만 가능");
my.value = "";
}
}
</script>
답변을 작성하려면 로그인이 필요합니다.
그리고 만약 위의 방법대로 할 시 let input_timer = 0.1; 이런식으로 정의 해주면 되나요?