<input onkeyup="this.value=this.value.replace(/[\D.]/g,'')" 
onafterpaste="this.value=this.value.replace(/[\D.]/g,'')">

解决方案 »

  1.   

    <script>
    var  timer=null;
    function check(uid,name)
    {
    var obj=document.all(uid);
    if(name=="max")
    {
    if(isNaN(obj.value)||(obj.value.indexOf(".")>-1)||(obj.value<1))
    obj.value=obj.value.slice(0,-1);
    }
    else
    if(isNaN(obj.value)||(obj.value.indexOf(".")>-1)||(obj.value<1)||(obj.value-document.all.maxvalue.innerHTML>0))
    obj.value=obj.value.slice(0,-1);
    timer=setTimeout("check('"+uid+"','"+name+"')",10);
    }
    function myclear(){
    clearTimeout(timer)
    }
    function setmax()
    {
    document.all.maxvalue.innerHTML=document.all.max.value;
    myclear();
    }
    </script>
    <form name=form1>
    最大值:<input name=max onfocus=check(this.uniqueID,name) onblur=setmax()>
    输入值在1至<span id=maxvalue>1000</span>之间<br>
    <input name=mytext onfocus=check(this.uniqueID,name) onblur=myclear()>
    <input name=mytext onfocus=check(this.uniqueID,name) onblur=myclear()>
    <input name=mytext onfocus=check(this.uniqueID,name) onblur=myclear()>
    </form>
      

  2.   

    for( var i=0;i<document.stationform.formcycle.value.length;i++ ){
                    var ch = document.stationform.formcycle.value.charAt(i);
                    if(!(ch>='0'&&ch<='9')){
                       alert("必须为数字!");
                       document.stationform.formcycle.focus();
                       }
    }stationform 为一框架
       formcycle为输入框
      

  3.   

    to  seabell(百合心)
    谢谢,你的功能又大了一些,将我的 “(可变)”,理解的深沉了些,
    其实,要的是控制输入的值在某一范围内。而这个值是刚进入页面时就已经由
      

  4.   

    to    seabell(百合心)  
    谢谢,你的功能又大了一些,将我的  “(可变)”,理解的深沉了些,  
    其实,要的是控制输入的值在某一范围内。而这个值是刚进入页面时就已经由 PHP 查询数据库确定了,基本上对于文本框调用的是类似 onfocus=check(1,$num),$num 由PHP 传入,请尽快帮忙
      

  5.   

    <input name=mm
     onkeypress="var k=event.keyCode; return k>=48&&k<=57"
     onpaste="return !clipboardData.getData('text').match(/\D/)"
     ondragenter="return false"
     onblur="cc(987)"
     style="ime-mode:Disabled"
    ><script language="JavaScript"><!--
    function cc(n)
    {
        var e = window.event.srcElement;
        if(e==null) return;
        if(parseInt(e.value, 10) > n || parseInt(e.value, 10) < 1)
        {
            alert("您输入的数值大于 "+ n +" 或者小于 1 ,请重新输入");
            e.focus();
            e.select();
        }
    }
    </script>
      

  6.   

    meizz(梅花雨) 
    多谢,你的代码基本上达到要求了,
    最好在进行输入的时候,就只能限制输入 1 至 x 的数值[象seabell(百合心)]上面的那种,考虑到界面友好问题,最好也不要弹出对话框。
    可怜呀,JS 学习中,自己功力太差,望高手们不吝赐教
      

  7.   

    <script>
    var  timer=null;
    function check(uid,name)
    {
    var obj=document.all(uid);
    if(isNaN(obj.value)||(obj.value.indexOf(".")>-1)||(obj.value<1)||(obj.value-document.all.maxvalue.innerHTML>0))
    obj.value=obj.value.slice(0,-1);
    timer=setTimeout("check('"+uid+"','"+name+"')",10);
    }
    function myclear(){
    clearTimeout(timer)
    }
    </script>
    <form name=form1>
    输入值在1至<span id=maxvalue>$num</span>之间<br>
    <input name=mytext onfocus=check(this.uniqueID,name) onblur=myclear()>
    <input name=mytext onfocus=check(this.uniqueID,name) onblur=myclear()>
    <input name=mytext onfocus=check(this.uniqueID,name) onblur=myclear()>
    </form>
      

  8.   

    <input  name=mm  
     onkeypress="return cc(987)"  
     onpaste="return !clipboardData.getData('text').match(/\D/)"  
     ondragenter="return false"  
     style="ime-mode:Disabled"  
     >  
     
    <script language="JavaScript">
    function cc(n)  
    {  
        var k = window.event.keyCode;
        var s = window.event.srcElement.value + String.fromCharCode(k);
        return(k >=48 && k <=57 && parseInt(s, 10) > 0 && parseInt(s, 10) < n);
    }  
     </script>