2013-11-23 95 views
0

我正在處理asp.net web應用程序。如何只允許文本框中的十進制數字

我在該文本框中有一個文本框,我需要在按下提交按鈕之前允許十進制數。所以如何在提交提交按鈕之前在客戶端執行此操作。

如果可以通過javascript完成,ajax aur從代碼後面請讓我知道。

+1

http://www.codeproject.com/Questions/425670 /文本框只爲數字十進制值 –

+0

我會說..驗證它在sumbit ..使用正則表達式或任何你喜歡的方法...在提交之前檢查小數似乎是一個壞主意.. –

回答

2

如果你想要一個代碼隱藏替代方案,你可以依靠TryParse。爲Button1TextBox1示例代碼:

string currentDot1 = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator; 
string currentDot2 = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator; 
string currentDot3 = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.PercentDecimalSeparator; 
decimal curVal = 0m; 
if (TextBox1.Text.Trim().Length > 0 && (TextBox1.Text.Contains(currentDot1) || TextBox1.Text.Contains(currentDot2) || TextBox1.Text.Contains(currentDot3)) && decimal.TryParse(TextBox1.Text, out curVal)) 
{ 
    //curVal is valid decimal 
} 
else 
{ 
    //NO DECIMAL 
} 
+0

不會失敗如果數字不爲0(仍然可以是小數?) – Noctis

+0

@Noctis i t也會以5(或任何其他整數)失敗。我明白,OP想要一個小數,意思是包含一個點的數字;不是.NET十進制類型。預計此代碼會考慮錯誤的內容,但不包括「。」。 – varocarbas

+0

好吧,他不太清楚,順便說一句,看看我的評論爲其他答案(user3024816) – Noctis

2

你能做到雙向,既可以通過內置在asp.net或使用JavaScript的驗證。通過JavaScript你可以如下做到這一點(這將阻止用戶進入字符鍵,因此只有數字將被允許):

<asp:Text onkeypress="return isNumber(event);" runat="server"/> 

<script> 
    function isNumber(evt) { 
     evt = (evt) ? evt : window.event; 
     var charCode = (evt.which) ? evt.which : evt.keyCode; 
     if (charCode > 31 && (charCode < 48 || charCode > 57)) { 
      return false; 
     } 
     return true; 
    } 
</script> 
+0

如果用戶區域使用的值不是'。',會發生什麼情況。爲小數部分? (有些國家,我知道,我知道......瘋狂......但是,有些國家也會講英語......) – Noctis

1

而不是寫在JavaScript或服務器端驗證自己的自定義驗證代碼,有是那裏的圖書館,允許你用jQuery做驗證客戶端。

添加這些腳本引用(你需要的jQuery以及):

<script src="http://jquery.bassistance.de/validate/jquery.validate.js"></script> 
    <script src="http://jquery.bassistance.de/validate/additional-methods.js"></script> 

然後你就可以做到以下幾點:

<script type="text/javascript> 
     $(document).ready(function() 
     { 
      $("#idOfMyForm").validate(
      { 
       rules: { 
        IdOfMyTextBox: { 
         required: true, 
         number: true 
        } 
       } 
      }); 
      $("#submitButton").click(function(e){ 
       if(!$("#idOfMyForm").valid(){ 
        e.preventDefault(); //stop the form from submitting 
        alert("My form is not valid."); 
       } 
       //continue submitting the form, do whatever you need to do. 
      }); 
     }); 
</script> 
相關問題