input 태그 안에 숫자만 입력되도록 제어하는 자바스크립트이다.

현재 소스는 숫자와 '.' 만을 입력할 수 있도록 되어있다.

마지막에 input 태그 안에

style='IME-MODE: disabled'

이 것을 넣어야 한글까지 입력이 안된다.

<input type="text" name = "applyfield" id = "applyfield" class="numtext" style='IME-MODE: disabled'>

잊지 말자.ㅋ


function addLoadEvent(func) {
 var oldonload = window.onload;
 if( typeof window.onload != "function" ) {
  window.onload = func;
 } else {
  window.onload = function() {
   oldonload();
   func();
  }
 }
}

/*
   숫자값 이벤트 체크
*/
function OnlyNum(num) {
 if (!chkOnlyNum(num)) {

  return false;
 }
 return true;
}


//숫자 외의 문자가 포함되어 있으면 false 리턴
function chkOnlyNum(num) {
 
 if((num >= 48 && num <= 57) || num == 142 || num == 62 )  // 오른쪽 숫자 자판과 '.'
   return true;
 if(num > 10) {    // 그리고 위의 가로 숫자 자판을 빼고는 모두 return false
   return false;
 }
 return true;
}

function numChk() {

 if(OnlyNum(event.keyCode - 48) != true)
  return false;
}

function addOnload() {
 
 document.getElementById("applyfield1").onkeydown = numChk;
 document.getElementById("applyfield2").onkeydown = numChk;
 document.getElementById("applyfield3").onkeydown = numChk;
 document.getElementById("applyfield4").onkeydown = numChk;
 document.getElementById("applyfield5").onkeydown = numChk;
 document.getElementById("applyfield6").onkeydown = numChk;
  document.getElementById("wallSize").onkeydown = numChk;
}

// body.onload 에 추가
addLoadEvent(addOnload);

Posted by 행복한 프로그래머 궁금쟁이박

댓글을 달아 주세요