使用javascript验证带有数字的文本框

时间:2012-03-29 04:52:43

标签: c# javascript asp.net

如何使用javascript阻止或验证用户在文本框中输入带有范围(例如:100000)和两位小数的6位数字? 我在我的文本框中使用onkeypress事件,我的代码是:

      var txtBudget = document.getElementById('MainContent_txtBudget');
        txtBudget.addEventListener('keypress', function (evt)
        {  
        var value = this.value + String.fromCharCode(evt.which);
        if (!/^\d{0,6}(?:\.\d{0,2})?$/.test(value)) 
           {   
             evt.preventDefault();
           }
       },
 false);​

3 个答案:

答案 0 :(得分:2)

使用HTML5 input type='number',无需使用javascript进行此验证。例如,您想要一个介于100,000.00和200,000之间的数字,带有两位小数,请在HTML中使用

Number: <input type="number" name="number" min="100000.00" max="200000" step='0.01'/>

答案 1 :(得分:1)

我想知道为什么不使用Asp.net工具箱中的RegularExpression控件。看看这个样本:

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" ControlToValidate="TextBox1"
 runat="server" ValidationExpression="^\d{1,6}(\.\d{1,2})?$" ErrorMessage="Only 6 digit numbers allowed"></asp:RegularExpressionValidator>

如果我的ValidationExpression错误,请访问此链接供您选择:Find Any Regular Expression

答案 2 :(得分:0)

'我想你想要这样的东西, 调用此函数onKeyPress您的文本框事件

 function test()
    {
      var obj=document.getElementById('textbox1');
      if(obj.value)
      {
            if(isNaN(obj.value)) 
            {
               alert('Please enter only numbers');
                return;
            }

      }
    }