IT_Programming/JavaScript

[스크랩] 텍스트박스에 숫자 및 콤마 입력 가능하게하는 이벤트 핸들러 함수

JJun ™ 2006. 10. 16. 21:25

/************************************************************************
함수명  : fn_CheckFloat(),fn_CheckFloatUp(),fn_CheckFloatBlur()
매개변수 : 없음.
     
반환값  : 없음.
작성목적 : 텍스트박스에 숫자 및 콤마 입력 가능하게하는 이벤트 핸들러 함수
              onkeypress = "fn_CheckFloat()"
              onkeyup  = "fn_CheckFloatUp()"
              onblur  = "fn_CheckFloatBlur()" 형태로 동시사용
최종작성일 : 2006.09.25
수정내역 :   
*************************************************************************/
var vCheckFloat = 0;
var floatInAble = true;
function fn_CheckFloatDown()
{
 if(floatInAble)
 {
  if(event.keyCode != 8 && event.keyCode != 37 && event.keyCode != 39)
   floatInAble = false;
  vCheckFloat = event.srcElement.value;
 }
 else
 {
  event.returnValue = false;
  event.cancelBubble = true;
 }
}

function fn_CheckFloat()
{
 if(event.keyCode < 48 || event.keyCode > 57)
 {
  if(event.keyCode != 46)
  {
   event.returnValue = false;
   event.cancelBubble = true;
  }
 }
}

function fn_CheckFloatUp()
{
 floatInAble = true;
 try
 {
  var dotCnt = event.srcElement.value.match(/\./g).length;
  
  if(dotCnt > 1)
   event.srcElement.value = vCheckFloat;
  else if(dotCnt == 1)
  {
   if(event.srcElement.value.split(".")[0] == "")
    event.srcElement.value = vCheckFloat;
  }
 }
 catch(exception){}

function fn_CheckFloatBlur()
{
 try
 {
  var dotCnt = event.srcElement.value.match(/\./g).length;
  
  if(dotCnt == 1)
  {
   if(event.srcElement.value.split(".")[1] == "")
    event.srcElement.value = event.srcElement.value.replace(/\./g,"");
  }
 }
 catch(exception){}
}

function fn_CheckFloatSet(objID)
{
 var targetObj = null;
 
 if(objID == undefined || objID == null)
  targetObj = event.srcElement;
 else
  fn_GetObjID(objID)
 
 targetObj.style.imeMode = "disabled";
 targetObj.onpaste  = fn_CheckPaste;
 targetObj.onkeydown  = fn_CheckFloatDown;
 targetObj.onkeypress = fn_CheckFloat;
 targetObj.onkeyup  = fn_CheckFloatUp;
 targetObj.onblur  = fn_CheckFloatBlur;
}

function fn_CheckPaste()
{
 return false;
}

출처 : ▶ 一人を ために◀
글쓴이 : 앙알앙알 원글보기
메모 :