Page 1 of 1

input 박스에 숫자만 입력

Posted: 2006 07 11 19:59 13
by happyjung
<script type="text/javascript">
// 숫자만 입력되도록 하는 코드
function onlyNumber()
{
//alert(event.keyCode);
if ( ( (96<=event.keyCode) && (event.keyCode<=105) ) || ( (48<=event.keyCode) && (event.keyCode<=57) ) || (event.keyCode==8) || (event.keyCode==37) || (event.keyCode==39) || (event.keyCode==9))
{
event.returnValue=true;
}
else
{
event.returnValue=false;
}
}
//-->
</script>

<input type="text" STYLE="IME-MODE:DISABLED" OnKeyDown="onlyNumber();">

이렇게 사용하는데요... IE(익스)에서는 정상작동하지만,
위의 코드 해석방식이 윈도우의 그 무엇을 참조하는 방식이라서..
FF(불여우)에서는 전혀 반응을 하지 않습니다.

뭐 좋은 해결 방법이 없을까요?

Re: input 박스에 숫자만 입력

Posted: 2008 03 19 18:14 42
by junho85
http://snippets.dzone.com/tag/javascript
참고를 하자면

Code: Select all

function numbersonly(e, decimal) {
var key;
var keychar;

if (window.event) {
   key = window.event.keyCode;
}
else if (e) {
   key = e.which;
}
else {
   return true;
}
keychar = String.fromCharCode(key);

if ((key==null) || (key==0) || (key==8) ||  (key==9) || (key==13) || (key==27) ) {
   return true;
}
else if ((("0123456789").indexOf(keychar) > -1)) {
   return true;
}
else if (decimal && (keychar == ".")) { 
  return true;
}
else
   return false;
}

Code: Select all

<form>
  <input name="number"  onKeyPress="return numbersonly(event, false)">
</form>
이런방식의 처리가 가능합니다.
하지만 한글은 입력됩니다.
style="ime-mode:disabled" 해주면 IE에서는 한글입력이 방지 되지만 FF2에서는 안되더군요.
검색을 해보니 FF3에서는 ime-mode를 지원하는듯 하지만 확인해보지는 못했습니다.