<input type="text" name="number" value="0" onkeyup="this.value=this.value.replace(/[^\d]/g,'') " onafterpaste="this.value=this.value.replace(/[^\d]/g,'') "> 
怎么把输入框改成只能输入1到9的正整数啊

解决方案 »

  1.   

    <script type="text/javascript">
        function setIntInput()
        {
            return((event.keyCode>=48 && event.keyCode<=57)|| event.keyCode==8);
        }
    </script><input type="text" onkeydown="return setIntInput()" >
      

  2.   

    <input name="name" 
    maxlength="5" 
    type="text" 
    onKeyPress="if(event.keyCode<48||event.keyCode>57||event.keyCode==8)event.returnValue=false;" value="0">
      

  3.   

    <input name="name" 
    maxlength="5" 
    type="text" 
    onKeyPress="if(event.keyCode<48||event.keyCode>57||event.keyCode==8)event.returnValue=false;" value="0">
    CSDN总是替换||
    为什么要用正则呢,你的目的是值不能大于9还是只能输入0~9啊
      

  4.   

    写全了,禁止输入非数字,禁止输入中文,禁止粘贴中文
    <input name="name" 
    style="ime-mode:disabled;"     
    ondragenter="return false" 
    onpaste="return!clipboardData.getData('text').match(/[\u4e00-\u9fa5]/gi)" 
    type="text" 
    onKeyPress="if(event.keyCode<48||event.keyCode>57||event.keyCode==8)event.returnValue=false;" value="0">
      

  5.   

    成功了,哈哈,<input type="text" name="number" value="1" onkeyup="this.value=this.value.replace(/[^1-9]/g,'') " 
     onafterpaste="this.value=this.value.replace(/[^1-9]/g,'') ">  
      

  6.   

    赶快给分吧,这个可以用的
    <input type="text"  onkeydown="return filtInput(event)" maxlength="6"/>
    <script>
    function filtInput(e){
    var evt=e||window.event;
    var nKeyCode=evt.which||evt.keyCode;
    if(nKeyCode==8 || nKeyCode==46 || (nKeyCode>=48 && nKeyCode<=57))
        return true;
    else
        return false;
    }
    </script>
      

  7.   

    惭愧,大话说的太早了,上面那个在中文输入法下会有问题,下面这个在ie7,firefox,opera下初步测试了下
    没什么问题
    <input type="text"  onpropertychange="filtInput(event)"
           onInput="filtInput(event)" maxlength="6"/>
    <script>
    var hasCall=false;
    function filtInput(e){
        if(!hasCall){
    var evt=e||window.event;
    var srcEl=evt.target||evt.srcElement;
    hasCall=true;
    srcEl.value=srcEl.value.replace(/[^\d]/gi,"");
    hasCall=false;
    }
    }
    </script>
      

  8.   

    IE下在样式表里这样写.INTEGER {
    script:expression(
    this.onkeypress = function() {
    var keyCode = window.event.keyCode;
    if(!(keyCode>=48 && keyCode<=57)) {
    return false;
    }
    }
    );
    }然后用的时候这样写:
    <input type="text" class="INTEGER" />你试试,这种只是不让输入非0-9字符,粘贴处理部分自己可以参考着写一下了
      

  9.   

    是可以解决,不过在用IE核的浏览器,在快速输入中文下,浏览器会异常崩溃.我进行了修改:<input type="text"     onInput="filtInput(this)" onkeyup="filtInput(this)" maxlength="6"/>JScript code<script>
    function filtInput(e){
            e.value=e.value.replace(/[^\d]/g,""); 
    }
    </script>