我有一個asp.net頁面有一個服務器端提交按鈕和2個文本框只接受數值values.Am也使用asp.net驗證控件。使用asp.net處理錯誤消息
如果用戶在兩個文本框中鍵入非數字數據,我如何在頁面上只顯示1條錯誤消息: 「只允許數字值。」 而我想在不觸發服務器端事件的情況下實現這一點。
謝謝。
我有一個asp.net頁面有一個服務器端提交按鈕和2個文本框只接受數值values.Am也使用asp.net驗證控件。使用asp.net處理錯誤消息
如果用戶在兩個文本框中鍵入非數字數據,我如何在頁面上只顯示1條錯誤消息: 「只允許數字值。」 而我想在不觸發服務器端事件的情況下實現這一點。
謝謝。
顯然你需要用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功能
你可以使用正則表達式驗證:
<asp:RegularExpressionValidator id="RegularExpressionValidator1"
ControlToValidate="TextBox1"
ValidationExpression="\d"
Display="Static"
ErrorMessage="Only numeric values are allowed."
EnableClientScript="True"
runat="server"/>
你可以使用上面的\ d正則表達式使用jQuery驗證。使用jquery,你將有更多的輸出控制。 It is discussed here.
如果您只想要一條錯誤消息,我會建議使用自定義驗證程序。你將不得不編寫你自己的服務器和客戶端驗證功能,但這很簡單。這裏是一個鏈接:
http://msdn.microsoft.com/en-us/library/f5db6z8k(VS.71).aspx
你也可以使用一個比較驗證,但隨後你將必須有一個爲每個控制,你會導致兩個錯誤消息。
感謝...但是,如果我在他們兩個附加的RegularExpressionValidator到每個文本框,如果在非數值用戶類型,那麼將顯示兩次的錯誤信息我不想在頁面上顯示。我想顯示錯誤消息只有一次。 – user74042 2009-06-27 00:19:43
你是對的。自從他滿足要求以來,我已經提出了傑克的答案。 – 2009-06-27 03:00:43