2009-06-26 108 views
0

我有一個asp.net頁面有一個服務器端提交按鈕和2個文本框只接受數值values.Am也使用asp.net驗證控件。使用asp.net處理錯誤消息

如果用戶在兩個文本框中鍵入非數字數據,我如何在頁面上只顯示1條錯誤消息: 「只允許數字值。」 而我想在不觸發服務器端事件的情況下實現這一點。

謝謝。

回答

3

顯然你需要用javascript來做到這一點。

我不知道確切的JavaScript方法來檢查輸入是否是數字,我猜你可以使用正則表達式。但是,你可以有一個隱藏的div如

<div id="numericErrorMessage" class="error" style="display:none;"> 
     Numeric Values only. 
</div> 

然後,你可以這樣做:

if(!IsNumber(text1) || !IsNumber(text2)) { 
    document.getElementById(numericErrorMesage).style.display = 'block'; 
} 
當然

這是「pseudocodish」但我認爲這會爲你工作,一旦你找到正確的路JavaScript可以檢查有效數字和公正的地方,在ISNUMBER功能

0

你可以使用正則表達式驗證:

<asp:RegularExpressionValidator id="RegularExpressionValidator1" 
       ControlToValidate="TextBox1" 
       ValidationExpression="\d" 
       Display="Static" 
       ErrorMessage="Only numeric values are allowed." 
       EnableClientScript="True" 
       runat="server"/> 
+0

感謝...但是,如果我在他們兩個附加的RegularExpressionValidator到每個文本框,如果在非數值用戶類型,那麼將顯示兩次的錯誤信息我不想在頁面上顯示。我想顯示錯誤消息只有一次。 – user74042 2009-06-27 00:19:43

+0

你是對的。自從他滿足要求以來,我已經提出了傑克的答案。 – 2009-06-27 03:00:43

1

你可以使用上面的\ d正則表達式使用jQuery驗證。使用jquery,你將有更多的輸出控制。 It is discussed here.

0

如果您只想要一條錯誤消息,我會建議使用自定義驗證程序。你將不得不編寫你自己的服務器和客戶端驗證功能,但這很簡單。這裏是一個鏈接:

http://msdn.microsoft.com/en-us/library/f5db6z8k(VS.71).aspx

你也可以使用一個比較驗證,但隨後你將必須有一個爲每個控制,你會導致兩個錯誤消息。