답변 2개
채택된 답변
+20 포인트
3년 전
간단히 만들어봤는데용 이게 맞는지 모르겠네요
</p>
<p>$(function () {</p>
<p> let input_timer;</p>
<p> $("input[name='inpu_text']").on("input", function () {</p>
<p> </p>
<p> let in_value = parseInt($(this).val());</p>
<p> if (input_timer) {</p>
<p> clearTimeout(input_timer);</p>
<p> }</p>
<p> </p>
<p> // 키보드 입력 받는 텀 주기위해 타임아웃 설정 입력값 없을시 0.5초 이후 실행 </p>
<p> input_timer = setTimeout(function () {</p>
<p> if (in_value > 0) {</p>
<p> if (in_value % 12 !== 0) {</p>
<p> alert("배수 단위로 입력해주세요. Ex) 12, 24, 36...");</p>
<p> return false;</p>
<p> }</p>
<p> }</p>
<p> }, 500);</p>
<p> });</p>
<p>});</p>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
�
신비나라
3년 전
�
포인트적립
3년 전
input에 입력 받는 시간이 사람마다 다르기 때문에..... 500 부분을 줄이거나 늘리거나 시간조절 하면 될듯하기도 하고요 아니면 .on("input" 이부분을 포커스 아웃 이라든지 input 영역 벋어났을때 체크 되게도 할수 있을듯 싶네요...
=====
.on("blur" 로 수정하면 setTimeout 이부분이 필요 없어보이네요~
=====
.on("blur" 로 수정하면 setTimeout 이부분이 필요 없어보이네요~
댓글을 작성하려면 로그인이 필요합니다.
3년 전
제이쿼리 아니어서 죄송요.
이런 건 제이쿼리건 바닐라건 input 하나 가지고만 해결하기는 쉽지 않습니다.
onkeyup 등으로 판명을 해도 12를 입력하려면 최초의 1이 12의 배수가 아니라서
1을 입력하는 순간 바로 튕겨내기 때문에 상당히 로직이 어렵습니다.
그래서 일반버튼을 같이 연동하셔야 해요.
</p>
<p><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></p>
<p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
그리고 만약 위의 방법대로 할 시 let input_timer = 0.1; 이런식으로 정의 해주면 되나요?