숫자만 입력받는 자바스크립트
<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>
-부호의 압박에 주춤.. 머리를 굴려라!