2009-09-15 56 views

回答

100

如果所有你關心的是該字段包含一個整數(即不涉及的範圍),然後添加一個CompareValidator與它的Operator屬性設置爲DataTypeCheck

<asp:CompareValidator runat="server" Operator="DataTypeCheck" Type="Integer" 
ControlToValidate="ValueTextBox" ErrorMessage="Value must be a whole number" /> 

如果有值是有效的(有可能是)一個特定的範圍內,那麼你可以使用一個RangeValidator,像這樣:

<asp:RangeValidator runat="server" Type="Integer" 
MinimumValue="0" MaximumValue="400" ControlToValidate="ValueTextBox" 
ErrorMessage="Value must be a whole number between 0 and 400" /> 

如果在文本框中的文字,這些只會驗證,所以你西港島線我也需要保留RequiredFieldValidator

由於@Mahin表示,請確保您檢查服務器端的Page.IsValid屬性,否則驗證程序僅適用於啓用了JavaScript的用戶。

+0

CompareValidator檢查整數數據類型的可能的問題:它似乎只是檢查正確的數字(0-9),但它不檢查範圍。因此,如果使用此驗證程序,如果用戶輸入的值太大或太小,仍可能會出現超出範圍的異常。更好地添加範圍驗證程序! – 2016-09-02 00:37:55

4

使用Int32.TryParse.

int integer; 
Int32.TryParse(Textbox.Text, out integer) 

它會返回一個布爾值,所以你可以看到,如果他們進入了一個有效的整數。

2

附加一個正則表達式驗證文本框,並使其表達是這樣的:

^\d+$ 

,做你的服務器端驗證過的,當然。

1
<script language="javascript" type="text/javascript"> 
     function fixedlength(textboxID, keyEvent, maxlength) { 
      //validation for digits upto 'maxlength' defined by caller function 
      if (textboxID.value.length > maxlength) { 
       textboxID.value = textboxID.value.substr(0, maxlength); 
      } 
      else if (textboxID.value.length < maxlength || textboxID.value.length == maxlength) { 
       textboxID.value = textboxID.value.replace(/[^\d]+/g, ''); 
       return true; 
      } 
      else 
       return false; 
     } 
</script> 

<asp:TextBox ID="txtNextVisit" runat="server" MaxLength="2" onblur="return fixedlength(this, event, 2);" onkeypress="return fixedlength(this, event, 2);" onkeyup="return fixedlength(this, event, 2);"></asp:TextBox> 
+1

這個javascript函數只接受2個整數,也不允許用戶輸入其他整數。如果你想要超過2個整數值,只需使用 ------ Devraj Kumar,Kanrad Technology – 2012-12-12 13:29:42

+0

你可以編輯你的答案來增加更多的細節(它比評論更易讀) – kleopatra 2012-12-12 13:43:52

6

這工作正常,對我說:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
    ControlToValidate="YourTextBoxID" 
    ErrorMessage="Only numeric allowed." ForeColor="Red" 
    ValidationExpression="^[0-9]*$" ValidationGroup="NumericValidate">* 
</asp:RegularExpressionValidator> 

我想你應該添加ValidationGroup="NumericValidate"到您的提交按鈕也。

1

您可以使用Java腳本這樣的: -

<asp:TextBox ID="textbox1" runat="server" Width="150px" MaxLength="8" onkeypress="if(event.keyCode<48 || event.keyCode>57)event.returnValue=false;"></asp:TextBox> 
1

的Visual Studio已經爲範圍檢查和類型檢查搞到現在集成支持: -

試試這個: - 爲範圍檢查 在驗證/檢查特定範圍的數字之前從標記視圖切換到設計視圖。然後: -

查看>工具箱>驗證

現在在RangeValidator控件拖動到你想要顯示的錯誤消息您設計網頁(ofcourse如果用戶輸入超出範圍值) 現在點擊你的控件的作用。右鍵單擊並選擇屬性。在「屬性」窗口中(通常在解決方案欄下方打開),在「錯誤消息」上選擇。寫: -

數字必須在範圍內。

現在從Control上選擇以驗證並從下拉列表中選擇TextboxID(或者將其寫入)。找到屬性欄本身並鍵入Integer。
就在它上面,你會發現最大值和最小值。

進行類型檢查(沒有任何範圍)
驗證/檢查號碼的特定範圍之前接通設計從標記圖視圖。然後: -

視圖>工具箱>驗證

現在將CompareValidator拖動到您想要顯示錯誤消息(如果用戶在其中輸入文本時顯示錯誤消息)的設計頁面。 現在點擊您的CompareValidator控件。右鍵單擊並選擇屬性。在「屬性」窗口中(通常在解決方案欄下方打開),在「錯誤消息」上選擇。寫: -

值必須是一個數字。

現在找到的ControlToValidate選項,並在寫你的名字控件ID(或者你也可以從下拉列表中選擇).Locate的操作選項,並寫DataTypeCheck(或者,您也可以從下拉菜單中選擇),在它。再定位Type選項並在其中寫入Integer。

這就是坐。

或者你可以寫下面的代碼在你的aspx頁面: - <% - 沒有任何範圍驗證 - %>

0

雙擊您的按鈕,並使用下面的代碼: -

protected void button_click(object sender,EventArgs e) 
{ 
int parsedValue; 
if(int.TryParse(!txt.Text,out parsedValue)) 
{ 
Label.Text = "Please specify a number only !!"; //Will put a text in a label so make  
    //sure     
    //you have a label 
} 
else 
    { 
    // do what you want to 
    }