[JS] input 숫자만 입력받기

spring·2020년 11월 9일
0

일단 input typetext 로 한다.

그리고 onkeyup 메소드를 연결한다.

onkeyup 이냐면 onkeydown 이나 onkeypress 는 브라우저마다 적용되는것이 다르다.

function tel_keyup() {
 var i = document.getElementById("PHONE");
 if(i.value.length>0){
  i.value = i.value.replace(/[^\d]+/g, '');
    }
 return true;
}

그리고 위의 코드를 사용한다.

정규표현식을 이용해 숫자만 남기는 코드이다.

자 하지만, 이 이벤트는 onkeyup 에서만 호출되기 때문에..

내가 onkeydown 만 하면 문제가 생긴다.

keydown 을 하면 keyup 이 있지않나>?????

아니다. ㅁ같다.

키다운을 하고있는상태 즉! 계속 키를 누른상태에서

마우스로 다른 인풋으로 포커스를 이동하면 onkeyup 은 불리지 않는다.

따라서 onkeyuponblur 이벤트를 둘다 사용해야한다.

onblur 는 포커스를 잃을때 호출된다.

profile
Researcher & Developer @ NAVER Corp | Designer @ HONGIK Univ.

1개의 댓글

comment-user-thumbnail
2021년 4월 14일

keydown을 한 상태에서 다른곳을 클릭할때라... 감탄스럽니다.
역시 프론트는 알면 알수록 모르겠음

답글 달기