有很多方法啊,基本就是js+正则:
1.
<input  onkeyup="this.value=this.value.replace(/\D/g,'')"  onafterpaste="this.value=this.value.replace(/\D/g,'')">  
2.
<input  name=txt1  onchange="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';}">  
3.
<input  onkeyup="if(isNaN(value))execCommand('undo')"  onafterpaste="if(isNaN(value))execCommand('undo')">  
 

解决方案 »

  1.   

    if(isNaN(parseInt(a.value,10))) alert("不全是数字");
      

  2.   

    正则
    set re = new RegExp
    re.Pattern = "^[0-9]*$"
      

  3.   

    fuction xx()
    {
    if ( !isCharsInBag( s, "0123456789"))
    {
    window.alert("只能包含0123456789" + "请重新输入" );
    return false;
    }
    }
    function isCharsInBag (s, bag)
    {  
      var i;
      for (i = 0; i < s.length; i++)
      {   
          var c = s.charAt(i);
          if (bag.indexOf(c) == -1) return false;
      }
      return true;
    }
      

  4.   

    匹配中文字符的正则表达式: [\u4e00-\u9fa5]
    匹配双字节字符(包括汉字在内):[^\x00-\xff]用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
      

  5.   

    若楼主你判断的纯数字包括小数点的话, 用系统函数 isNaN() 判断最好.
    若要判断只是0-9的数字那就得重新写函数了:
    function isNumber(str)
    {
      alert("str 是否为纯数字?\r\n"+ /\D/.test(str));
      return /\D/.test(str);
    }