본문 바로가기

Javascript/jQuery

input 박스에 숫자만 입력하기

숫자만 입력받게 해달라고 요청이와서 전에 만들어둔 소스를 찾았다. 이거 만들 때, 아마도 정규식을 많이 연습중이였던거 같다. 정규식으로 만들었네... 무조건 숫자 처리를 했네... 키 코드를 모두 예외처리할 수 없으니 이렇게 한거 같은데... 정확히 기억은 나지 않는다;;;


$('input').bind('keyup',function(e){

event = e || window.event;

var keyID = (event.which) ? event.which : event.keyCode;

if ( keyID == 8 || keyID == 46 || keyID == 37 || keyID == 39 ){

 // 백스페이스, DELETE, 좌 화살표, 우 화살표

return;

}else{

event.target.value = event.target.value.replace(/[^0-9]/g, "");

}

});


내 기억에 어떤 소스를 보다가 맘에 안들어 고치다보니 이렇게 됬던거 같은데... 잘 동작하니 넘어가자;; 크롬,오페라,파폭, ie11에서는 확인했지만 다른 버젼은 확인하지 못했다. ie11 개발자 모드에서 버젼을 낮추면 스크립트 에러가 나서 확인할 방법이 없다... 참고로 전에 ie8까지는 테스트 했었으니 되겠지...


동작은 간단하다. 이벤트를 받아서 백스페이스, DELETE, 좌 화살표, 우 화살표 키는 넘기고 다른 모든키는 숫자 처리해서 다시 값을 집어넣는다. 아마도 한글 문제 때문에 이렇게 된거 같기도 하고... 무조건 숫자 처리를 해서 값을 다시 넣게끔 하는 소스이다. 시간이 지나니 히스토리가 희미해져서 안타깝다. ㅠㅠ



'Javascript > jQuery' 카테고리의 다른 글

input 박스 길이제한  (0) 2016.08.17
jQuery Attributes vs. Properties  (0) 2016.02.15
타이머 만들기  (0) 2013.03.12
달력 만들기  (0) 2013.01.17
단축키를 눌러 특정위치로 이동  (0) 2012.11.22