如果是这样,那么你可以在文本框的onkeypress或onkeydown事件中检查event.keyCode的值来判断用户是否只输入了数字和小数点,还有减号。因为键盘上的每个健都自己的keyCode。你可以用alert(event.keyCode)来找到数字和小数点,还有减号的健上的各自的健值。如果不是可以用return false;来取消按下的这个健。

解决方案 »

  1.   

    用正则表达式阿,
    http://www.aspsky.net/article/index.asp?classid=2&Nclassid=27
      

  2.   

    //检查是否为数子和小数点
    function check_NumDot(character){
        var floating_point=".123456789"
        if(floating_point.indexOf(character)==-1){
             return false;
        }
        return true;
    }
    //检查是否有一个小数点,并且在不在第一位
    function isFloatingNumber(string){
        if(string.indexOf(".")<=1){
           return false;
        }
        for(var i=0;i<string.length;i++){
            curChar=string.charAt(i)
            if(!check_NumDot(curChar){
                   return false;
             } 
        }
        return true;
    }
      

  3.   

    //检查是否为数子和小数点
    function check_NumDot(character){
        var floating_point=".123456789"
        if(floating_point.indexOf(character)==-1){
             return false;
        }
        return true;
    }
    //检查是否有一个小数点,并且在不在第一位
    function isFloatingNumber(string){
        if(string.indexOf(".")<=1){
           return false;
        }
        for(var i=0;i<string.length;i++){
            curChar=string.charAt(i)
            if(!check_NumDot(curChar){
                   return false;
             } 
        }
        return true;
    }
      

  4.   

    <INPUT type="text" id=text1 name=text1 onkeydown="if(!((event.keyCode<58 && event.keyCode>47) || event.keyCode==189 || event.keyCode==190)){alert('error');this.focus();return false;}">清除数据使用:
    document.all.yourinputname.value="";
      

  5.   

    <script>
    var  timer=null;
    function check(uid)
    {
    var obj=document.all(uid);
    if(isNaN(obj.value))obj.value=obj.value.slice(0,-1)
    timer=setTimeout("check('"+uid+"')",10);
    }
    function clear(){
    clearTimeout(timer)
    }
    </script>
    <form name=form1>
    <input name=mytext onfocus=check(this.uniqueID) onblur=clear()>
    <input name=mytext onfocus=check(this.uniqueID) onblur=clear()>
    <input name=mytext onfocus=check(this.uniqueID) onblur=clear()>
    输入过程中即时检查文本框
    </form>
      

  6.   

    <script>
    var  timer=null;
    function check(uid)
    {
    var obj=document.all(uid);
    if(isNaN(obj.value)&&(obj.value!="-"))
    obj.value=obj.value.slice(0,-1);
    timer=setTimeout("check('"+uid+"')",10);
    }
    function clear(){
    clearTimeout(timer);
    }
    </script>
    <form name=form1>
    <input name=mytext onfocus=check(this.uniqueID) onblur=clear()>
    <input name=mytext onfocus=check(this.uniqueID) onblur=clear()>
    <input name=mytext onfocus=check(this.uniqueID) onblur=clear()>
    输入过程中即时检查文本框
    </form>
      

  7.   

    to fokker(独孤龙)您的方法很好用可是如果我输入错误删除键不可用啊,还有方向键
      

  8.   

    <script>
    var  timer=null;
    function check(uid)
    {
    var obj=document.all(uid);
    if(isNaN(obj.value)&&(obj.value!="-"))
    obj.value=obj.value.slice(0,-1);
    timer=setTimeout("check('"+uid+"')",10);
    }
    function clear(){
    clearTimeout(timer);
    }
    </script>
    <form name=form1>
    <input name=mytext onfocus=check(this.uniqueID) onblur=clear()>
    <input name=mytext onfocus=check(this.uniqueID) onblur=clear()>
    <input name=mytext onfocus=check(this.uniqueID) onblur=clear()>
    输入过程中即时检查文本框
    </form>
      

  9.   

    <INPUT type="text" id=text1 name=text1 onkeydown="if(!((event.keyCode<58 && event.keyCode>47) || (event.keyCode<41 && event.keyCode>36) || event.keyCode==189 || event.keyCode==190 || event.keyCode==8 || event.keyCode==46 )){alert('error');this.focus();return false;}">
    都加到里面了
      

  10.   

    <input onkeyup="value=value.replace(/[^\d,.,-]/g,'')">