2012-03-29 51 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