<input
 onkeypress="var k=event.keyCode; return k>=48&&k<=57"
 onpaste="return !clipboardData.getData('text').match(/\D/)"
 ondragenter="return false" style="ime-mode:Disabled"
>

解决方案 »

  1.   

    to meizz
    我是想用一个脚本程序实现
      

  2.   

    if(strA.isNan)
    =>
    if(!/^[1-9]\d*$/.test(strA))
      

  3.   

    <script language="vbs">
    <!--
      function funcheck()
        Dim strNote 
        Dim ingc
        strNote = T1.value
        for ingc = 1 To len(strNote)
          If not IsNumeric(mid(strNote,ingc,1)) Then alert("含有非法字符!") : exit for
        Next
      End function
    -->
    </script><input name=T1 size=20>
    <input type=button name=B1 value=check onclick="funcheck()">
      

  4.   

    请问fason
    if(!/^[1-9]\d*$/.test(strA))
    这个语句中的 !/^[1-9]\d*$/.test是js本身的吗?我不明白这个语句的含义,你能给我解释一下吗?谢谢
      

  5.   

    fason,你的我试了,但只在第一次进入时有效,点刷新则不行
    我的本意是:在这个文本框旁边做了个刷新的按钮,如果输入的不是数字,点击刷新,则弹出一个提示;如果输入的是数字,则提交
      

  6.   

    zltostem,我也试了你的,也不行啊。高手们,怎么办啊,我都搞半天了还不行
      

  7.   

    根本不让输非数字
    <input onkeypress="return event.keyCode>=48&&event.keyCode<=57||event.keyCode==46" onpaste="return !clipboardData.getData('text').match(/\D/)" ondragenter="return false">
      

  8.   

    <script language="JavaScript">
    //去掉空格
    function Trim(str)
    {
    if(str.charAt(0)==" ")
    {
    str=str.slice(1);
    str=Trim(str);
    }
    return str;
    }//判断是否是空
    function isEmpty(pObj,errMsg)
    {
    var obj=eval(pObj);
    if(obj==null||Trim(obj.value)=="")
    {
    if (errMsg==null||errMsg=="")
    alert("输入为空!");
    else
    alert(errMsg);
    obj.focus();
    return false;
    }
    return true;
    }//判断是否是数字
    function isNumber(pObj,errMsg)
    {
      var obj=eval(pObj);
    strRef="1234567890";
    if(!isEmpty(pObj,errMsg))return false;
    for (i=0;i<obj.value.length;i++)
    {
    tempChar=obj.value.substring(i,i+1);
    if (strRef.indexOf(tempChar,0)==-1)
    {
    if(errMsg==null||errMsg=="")
    alert("数据不符合要求,请检查");
    else
    alert(errMsg);
    if(obj.type=="text")
    obj.focus();
    return false;
    }
    }
    return true;
    }//判断是否是数字,数字可以为负数
    function isNegative(pObj,errMsg)
    {
    var obj=eval(pObj);
    strRef="1234567890-";
    if(!isEmpty(pObj,errMsg))return false;
    for (i=0;i<obj.value.length;i++)
    {
    tempChar=obj.value.substring(i,i+1);
    if (strRef.indexOf(tempChar,0)==-1)
    {
    if(errMsg==null||errMsg=="")
    alert("数据不符合要求,请检查");
    else
    alert(errMsg);
    if(obj.type=="text")
    obj.focus();
    return false;
    }
    else
    {
    if(i>0)
    {
    if(obj.value.substring(i,i+1)=="-")
    {
    if (errMsg==null||errMsg=="")
    alert("数据不符合要求,请检查");
    else
    alert(errMsg);
    if(obj.type=="text")
    obj.focus();
    return false;
    }
    }
    }
    }
    return true;
    }//判断是否是钱的形式
    function isMoney(pObj,errMsg)
    {
    var obj=eval(pObj);
    strRef="1234567890.";
    if(!isEmpty(pObj,errMsg))return false;
    for(i=0;i<obj.value.length;i++)
    {
    tempChar=obj.value.substring(i,i+1);
    if (strRef.indexOf(tempChar,0)==-1)
    {
    if (errMsg==null||errMsg=="")
    alert("数据不符合要求,请检查");
    else
    alert(errMsg);
    if(obj.type=="text")
    obj.focus();
    return false;
    }
    else
    {
    tempLen=obj.value.indexOf(".");
    if(tempLen!=-1)
    {
    strLen=obj.value.substring(tempLen+1,obj.value.length);
    if(strLen.length>2)
    {
    if(errMsg==null||errMsg=="")
    alert("数据不符合要求,请检查");
    else
    alert(errMsg);
    if(obj.type=="text")
    obj.focus();
    return false;
    }
    }
    }
    }
    return true;
    }function isLeapYear(year) 
    {
    if((year%4==0&&year%100!=0)||(year%400==0))
    {
    return true;
    }
    return false;
    }//判断时间是否正确
    function isDate(checktext)
    {
    var datetime;
    var year,month,day;
    var gone,gtwo;
    if(Trim(checktext.value)!="")
    {
    datetime=Trim(checktext.value);
    if(datetime.length==0)
    {
    year=datetime.substring(0,4);
    if(isNaN(year)==true)
    {
    alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)!");
    checktext.focus();
    return false;
    }
    gone=datetime.substring(4,5);
    month=datetime.substring(5,7);
    if(isNaN(month)==true)
    {
    alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)!");
    checktext.focus();
    return false;
    }
    gtwo=datetime.substring(7,8);
    day=datetime.substring(8,10);
    if(isNaN(day)==true)
    {
    alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)!");
    checktext.focus();
    return false;
    }
    if((gone=="-")&&(gtwo=="-"))
    {
    if(month<1||month>12)
    {
    alert("月份必须在01和12之间!");
    checktext.focus();
    return false;
    }
    if(day<1||day>31)
    {
    alert("日期必须在01和31之间!");
    checktext.focus();
    return false;
    }
    else
    {
    if(month==2)
    {
    if(isLeapYear(year)&&day>29)
    {
    alert("二月份日期必须在01到29之间!");
    checktext.focus();
    return false;
    }
    if(!isLeapYear(year)&&day>28)
    {
    alert("二月份日期必须在01到28之间!");
    checktext.focus();
    return false;
    }
    }
    if((month==4||month==6||month==9||month==11)&&(day>30))
    {
    alert("在四,六,九,十一月份 \n日期必须在01到30之间!");
    checktext.focus();
    return false;
    }
    }
    }
    else
    {
    alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)");
    checktext.focus();
    return false;
    }
    }
    else
    {
    alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)");
    checktext.focus();
    return false;
    }
    }
    else
    {
    return true;
    }
    return true;
    }
    function checked()
    {
    if(!isEmpty(event.srcElement.value,'请输入数据'))return false;
    }
    </script>
    判断是否输入数据<input type="text" onchange="checked()"><br>
    判断数量<input type="text" onchange="return isNumber(this,'');"><br>
    判断数量,可以为负数<input type="text" onchange="return isNegative(this,'');"><br>
    判断金额<input type="text" onchange="return isMoney(this,'');"><br>
    判断时间<input type="text" onchange="return isDate(this)"><br>
      

  9.   

    因为你的strA是服务端取的变量!不是实际form提交时的变量!