如何让用户只能输入带两位小数的数字?(不能输字母或别的字符)
如:输入1,失去焦点则为显示1.00,输入222.38则正常显示。

解决方案 »

  1.   

    “不能输字母或别的字符,输入222.38则正常显示,只能输入带两位小数的数字”,这个单纯用RegularExpressionValidator控件,写一个正则表达式作为ValidatorExpression就可以~~~正则表达式为\d+\.\d{0,2}如何让其失去焦点,输入1显示1.00,这个不了解
      

  2.   

    服务器端Page_Load:
    if (!IsPostBack)
    {
        TextBoxCheckNum.Style.Add("ime-mode","disabled");
        TextBoxCheckNum.Attributes.Add("onkeypress","CheckNum();");
        TextBoxCheckNum.Attributes.Add("onblur","ChangeNum(this);");
    }客户端:
    <script language="javascript">
    function CheckNum()
    {
        var objRegex = /[\d\.]/ig;    if (String.fromCharCode(event.keyCode).match(objRegex) == null)
        {
            event.returnValue = 0;
        }
    }function ChangeNum(obj)
    {      
        if (obj.value.indexOf(".") < 0)
        {
            obj.value = obj.value + ".00";
        }
    }
    </script>
      

  3.   

    学习一下swordragon(古道热肠)提供的JS
      

  4.   

    再次修改一下:
    function ChangeNum(obj)
    {   
        alert(obj.value.indexOf("."));
        if (obj.value.indexOf(".") < 0)
        {
            obj.value = obj.value + ".00";
        }      
        
        if (obj.value.indexOf(".") == 0)
        {
            obj.value = "0" + obj.value;
        }      
        
        if (obj.value.indexOf(".") == obj.value.length - 1)
        {
            obj.value = obj.value + "00";
        }      
        
        if (obj.value.length - obj.value.indexOf(".") > 2)
        {
            obj.value = obj.value.substring(0,obj.value.indexOf(".") + 3);
        }
    }
      

  5.   

    刚刚给的正则表达式有一点小问题不能输字母或别的字符,输入222.38则正常显示,只能输入带两位小数的数字”,这个单纯用RegularExpressionValidator控件,写一个正则表达式作为ValidatorExpression就可以~~~正则表达式为\d+\.?\d{0,2}
    加了一个问号~~~~
    swordragon(古道热肠)提供的JS验证了,没有问题,学习~~
      

  6.   

    另外,楼主你也可以使用验证控件:
    1、追加一个验证控件:RegularExpressionValidator
    2、设置该验证控件的ControlToValidate=TextBoxCheckNum
    3、设置该验证控件的ValidationExpression="^\d+(\.\d{2}){1}$"
    4、设置该验证控件的ErrorMessage="你期望显示的错误消息"这样的话,在TextBox每次失去焦点的时候,如果不符合的话,就会显示错误消息。
      

  7.   

    最好不用.NET的验证控件,有时候又很多问题,用古道的JS验证。
      

  8.   

    修改一下swordragon(古道热肠) 
    client:<script language="javascript">
    function CheckNum()
    {
        var objRegex = /[\d\.]/ig;    if (String.fromCharCode(event.keyCode).match(objRegex) == null)
        {
            event.returnValue = 0;
        }
    }function ChangeNum(obj)
    {   
        var i = obj.value.indexOf(".");
        var j = obj.value.length;
        
        if (obj.value.indexOf(".") < 0)
        {
            obj.value = obj.value + ".00";
        }
        else
        {    
    if ((j-i)==1)
    {
    obj.value = obj.value + "00";
    }

    if ((j-i)==2)
    {
    obj.value = obj.value + "0";
    }
             
        }
    }
    </script>
      

  9.   

    function check()
    {
    var aa=document.Form1.Text1.value ;
    var bb=fucCheckNUM(aa);
    if (bb=="1")
    {
    alert("合法数据!");
    return true;
    }
    else
    {
       alert("非法数据!")
       return false;
    }
    }
    function fucCheckNUM(NUM)
    {
    var i,j,strTemp;
    strTemp="0123456789.";
    if ( NUM.length== 0)
    return 0
    for (i=0;i<NUM.length;i++)
    {
    j=strTemp.indexOf(NUM.charAt(i)); 
    if (j==-1)
    {
    //说明有字符不是数字
    return 0;
    }
    }
    //说明是数字
    return 1;
    }
      

  10.   

    学习正则表达式ing~~~-------------------------------------------------------------------------
    .Net技术讨论群14272327,欢迎爱好c#和asp.net的同志加入~队伍正在不断壮大中...
      

  11.   

    <input name=d onblur="if(/^[\[0-9]*\.{0,1}[0-9]*$/.test(this.value))return ; this.value='' ;alert('录入格式错误') ; this.focus()">
      

  12.   

    <input name=txtNum onblur="chk()">
    JS代码:
    function chk()
    {
       var val=document.all.txtNum.value;
       if(val=="")
       {
         alert('输入不能为空');
         document.all.txtNum.focus;
         return false;
       }
       else
       {
        var pattern = /^[\[0-9\.]*$/;
                if(!pattern.test(val))
                {
                  alert('必须输入数字');
                 document.all.txtNum.value="";
         document.all.txtNum.focus;
         return false;
                }
                else
                  { 
                   var i=val.indexOf(".");
                   var j=val.length;
                   var k=j-i;
                   if(i>=0)
                   {
                      switch(j-i)
                      {
                        case 1:
                          document.all.txtNum.value=val +"00";
                          break;
                        case 2:  
                          document.all.txtNum.value=val +"0";
                          break;
                        case 3: 
                          document.all.txtNum.value=val;
                          break;
                       default:
                          document.all.txtNum.value=val.substr(0,i+3);
                          break;
                      }
                      
                   }
                   else
                   {                 
                      document.all.txtNum.value=val +".00";
                   }           
                  }          
                 
                  return true;
       }
    }
      

  13.   

    http://www.ebays.cn/  
    国内最强的刷排名系统
      

  14.   

    谢谢各位,谢谢swordragon(古道热肠)
      

  15.   

    不用客气了,jzlk兄,呵呵……