javascript限制输入的只能是数字,判断event.keyCode的值,并将它限定只能为数字,如果不是数字,则返回错误,如果是数字,则继续。
我先介绍验证javascript是否是数字另一种方式,通过下面的函数来实现:
function isNumber(oNum)
   {
  if(!oNum) return false;
  var strP=/^\d+(\.\d+)?$/;
  if(!strP.test(oNum)) return false;
  try{
  if(parseFloat(oNum)!=oNum) return false;
  }
  catch(ex)
  {
   return false;
  }
  return true;
   }
 
这段javascript代码很简洁,大家可以看下。
<script language=javascript>
function onlyNum()
{
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
//考虑小键盘上的数字键
event.returnvalue=false;
}
</script>
<input onkeydown="onlyNum();">
 
下面还有一种比较笨的方法,大家也可以看下,学习嘛
下次贴个用正则验证数字的
<script language="javascript">
function CheckMyForm()
{
var txt = myform.mytext.value;
if(checknumber(txt))
{
alert("只允许输入数字!");
return false;
}
return true;
}
function checknumber(String)
{
var Letters = "1234567890";
var i;
var c;
for( i = 0; i < String.length; i ++ )
{
c = String.charAt( i );
if (Letters.indexOf( c ) ==-1)
{
return true;
}
}
return false;
}
</script>
<body>
<form name="myform" onSubmit="return CheckMyForm()">
<input type="text" name="mytext">
<input type="submit" name="mysubmit">
</form>
</body>
 
最简单的javascript验证是否不是数字的代码如下:
<input type='TEXT' onKeyPress="if(event.keyCode==13){if(isNaN(this.value))alert('不是数值')};">
 
利用了siNan函数,点这里查看isNaN函数说明
 

解决方案 »

  1.   

    function onlyNum2(evt){   
    if(evt==null){
    evt=window.event;
    }
    var keycode = evt.keyCode;   //取得键盘码
    var realkey = String.fromCharCode(keycode);    //以键盘码转成键盘符号
    if(keycode==8 || keycode==9 || keycode==46|| (keycode>=35 && keycode<=40)||(keycode>=96 && keycode<=105) || keycode == 110)
       return;   
    else if(!/\d/.test(realkey)){
    if(navigator.appName=="Netscape"){//区分浏览器种类
       evt.preventDefault();
                return false; 
    }else{
    window.event.returnValue = false;
    }
    }支持LZ
    }