有点错误:
if (window.event.keyCode <46||(window.event.keyCode>57&&window.event.keyCode <106)){
原来是:
if (window.event.keyCode <46||window.event.keyCode>57){
我在测试不成功。

解决方案 »

  1.   

    追加一下,也要允许使用Backspace撤消键。
      

  2.   

    把“-”的keycode也添加进去就OK了
      

  3.   

    键盘上有两个"-"keycode是多少?怎么加,谢了!
      

  4.   

     function CheckValue(name) { 
         if (event.srcElement.name == name || event.srcElement.name.indexOf(name) == event.srcElement.name.length-name.length){ 
         if (String.fromCharCode(event.keyCode).search(/^[0-9-.]$/) == -1) event.returnValue = false; 
         } 
     } 
    这不是很简单嘛
    在文本框的 onkeypress的事件里加入这个
    <input type="text" name="my_text" onkeypress="CheckValue(name)" />
      

  5.   

    不用那么麻烦,用正则:<script>
    function IsNum(o){
      var rgExp=rgExp=/^\-?\d*$/gi; //允许输入" - " 号
      if(!o.value.match(rgExp)){alert("请输入数字");o.select();  return false;}
      return true;
    }
    </script>
    <input type=text name=a id=a onkeyup='IsNum(this);'>
      

  6.   

    var rgExp=rgExp=/^\-?\d*$/gi; //允许输入" - " 号---->
    改为
    var rgExp=/^\-?\d*$/gi; //允许输入" - " 号
      

  7.   

    <script>
    function shownum(obj){
    var re=/^[+|-]{0,1}[1-9][0-9]+$/g;
    if(!re.test(obj.value)){
    alert('不符合要求');
    obj.value=0;
    return false
    }
    event.keyCode=9
    }
    </script>
    <form>
    <input name="num" type="text" onkeyup="value=value.replace(/^[^1-9+-]$/g,'')" value="0" onkeydown="if(event.keyCode==13){shownum(this)}"/>
    <input name="num" type="text" onkeyup="value=value.replace(/^[^1-9+-]$/g,'')" value="0" onkeydown="if(event.keyCode==13){shownum(this)}"/>
    </form>
      

  8.   

    这是我给你修改后的代码,只能输入数字和减号,可以使用Backspace撤消键和Delete健。以经过验证,可以正常使用。
    function check_num_dot(){ 
    if(window.event.keyCode==189)
    {
    return;
    }
    if(window.event.keyCode==109)
    {
    return;
    }
    if(window.event.keyCode==8)
    {
    return;
    }
    if(window.event.keyCode==46)
    {
    return;
    }
    if(window.event.keyCode<48||(window.event.keyCode>57&&window.event.keyCode<96)||window.event.keyCode>105)
    {
    window.event.returnValue=false;
    }
    }