관리 메뉴

IT 쟁이

숫자만 입력받는 자바스크립트 본문

JavaScript

숫자만 입력받는 자바스크립트

클라인STR 2008. 1. 18. 18:40

<html>
   <head>
       <title></title>
    <script language="javascript">
function NumberOnlyBox(obj) {
   this.initialize(obj);
}

NumberOnlyBox.prototype = {
   //초기화 함수
   initialize : function (obj) {
       var me = this;
       this._obj = obj;
       //이벤트 등록 : 특수키 관련 처리
       obj.attachEvent("onkeydown", function(e) { return me.onKeyDown(e); });
       //이벤트 등록 : 키를 누를 때 숫자관련인지 확인
       obj.attachEvent("onkeypress", function(e) { return me.onKeyPress(e); });
       //이벤트 등록 : 붙여넣기시 처리
       obj.attachEvent("onpaste", function(e) { return false; });
   },
   onKeyPress : function(e) {
       //숫자면 입력
       if(this.isNumericKey(e.keyCode)) return true;
       //콤마는 하나만 입력
       if(this.isPointKey(e.keyCode) && this.countPoint(e.srcElement.value) < 1) return true;
       return false;
   },
   onKeyDown : function(e) {
       if(e.keyCode == 229) return false; // 한글입력 금지
       return true;
   },
   isNumericKey : function(keycode) {
       // 숫자키인지 확인하는 메쏘드
       if(keycode >= 48 && keycode <= 57) return true;
       return false;
},
   isPointKey : function(keycode) {
       // . 키인지 확인하는 메쏘드
       if(keycode == 46) return true;
       return false;
   },
   isCommaKey : function(keycode) {
       // , 키인지 확인하는 메쏘드
       if(keycode == 44) return true;
       return false;
   },
   countPoint : function(value) {
       value = " ".concat(value);
       var count = 0;
       for(var i = 0; i != -1; count++) i = value.indexOf(".", i + 1);
       return --count;
   }
}

function init() {
var mybox = new NumberOnlyBox(document.getElementById('nbox'));
}

       </script>

   </head>
   <body onload="init()">
       <form name="onlyNum">
       <input type="text" id="nbox" name="number" size="50" maxlength="100" style="border:1px solid #666633">
       </form>
   </body>
</html>

-부호의 압박에 주춤.. 머리를 굴려라!

출처 : Tong - melledia님의 Javascript통

Comments