2012-03-29 79 views
1

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

 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);​ 
+0

我想 [本条] [1] [1]:HTTP:// stackoverflow.com/questions/18082/validate-numbers-in-javascript-innmeric 将帮助你。 – 2012-03-29 04:57:06

+0

谢谢..也应该只允许数字没有任何其他字母或特殊字符 – kk1076 2012-03-29 05:06:38

回答

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'/> 
+0

国际海事组织W3Schools是一个可怕的网站,经常举例说明使用最坏的做法(见http://w3fools.com/)。 MDN上有一个等效的页面(通常是更好的信息来源) - https://developer.mozilla.org/en-US/docs/HTML/Element/Input。很好的答案,但是,+1 – 2013-04-19 15:35:08

+0

哦,我从来没有意识到,始终认为它是一个可靠的来源。感谢您指出。我已经从答案中删除了参考。 – 2013-04-19 21:24:19

0

使用这个“我想你想是这样的, 调用这个函数onKeyPress事件的文本框的

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

     } 
    } 
+0

你修改你的问题,直到我提交我的答案。但你仍然可以自定义和使用。 – Pranav 2012-03-29 05:07:47

+0

谢谢pranav ..想在文本框验证只允许数字 – kk1076 2012-03-29 05:10:13

+0

看到编辑的答案。 – Pranav 2012-03-29 05:17:57

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