这个方法不好,这样的话输入全角情况下的数字就不能输入了,还要用CSS限制输入法
还是用正则吧

解决方案 »

  1.   

    不用正则了
    <input name=num type=text onblur="if(isNaN(this.value)){alert('错误');this.focus();}">
      

  2.   

    能不能通过加入小数点的KEYCODE来实现输入小数点呀?
    哪位高人知道小数点的KEYCODE???
      

  3.   

    如果要KEYCODE的话,下面的程序不完善,第一里面可以输入多个点,第二全角输入的时候没有用,还要加ime-mode CSS限制才行
    <script language=javascript>
    function check()
    {
    if(!(((event.keyCode>=48)&&(event.keyCode<=57))||(event.keyCode==110)||(event.keyCode==190)))
    {
    event.returnValue=false;
    }
    }
    </script>
    <input name=num onkeydown=check()>
      

  4.   

    <script language=javascript>
    function IsDigit()
    {
      return ((event.keyCode >= 48)&&(event.keyCode <= 57)||(event.keyCode == 110)||(event.keyCode == 190)||(event.keyCode == 0xD));
    }
    </script>
    <input name="zl" type="text" id="zl" tabindex="4" onKeyPress="event.returnValue=IsDigit();" onKeyDown="totab();" size="10" maxlength="6">你看看我的有什么不对???就是输不进小数点!谢谢!!!
      

  5.   

    在onkeypress事件判断是很难的,因为数字输入是逐步输入的,不是一下子进去的,包括数字、小数点、正负号,而且小数点和正负号还有位置和数量的限制。
    比如我开始输入正负号怎么办。应该在onblur中用正则判断,或者isNaN判断
    var reg=/^(\+|\-)?\d+(\.\d+)?$/g;