2010-08-19 51 views
0

我有一個asp:文本框。在這個文本框的textchange上,我正在對輸入的文本進行驗證。如果輸入的文本不正確,我想刷新輸入錯誤文本的消息。請重新輸入。我怎樣才能在ASP中做到這一點?如何使用ASP TextBox的Textchange屬性

+0

這取決於您是否希望消息在每次按鍵時立即閃爍,導致無效輸入(在這種情況下與Joel的答案一起)或僅當輸入提交時(在這種情況下與David的答案一起)。 – 2010-08-19 08:07:06

+0

實際上,如果ClientValidation爲true,驗證器會在文本框失去焦點時立即執行此操作。 – David 2010-08-19 16:29:39

回答

1

只需使用RegularExpressionValidator並將客戶端驗證屬性保留爲其默認「真」值。控件將爲您處理這種行爲。

下面是與代碼行動的例子:http://www.w3schools.com/ASPNET/showasp.asp?filename=demo_regularexpvalidator

+0

澄清 - 假設你想在沒有回傳的情況下在客戶端進行回覆,正如@Joel Coehoorn指出的那樣,必須進行回發將會是一個不好的用戶體驗。 – David 2010-08-19 07:09:12

+0

我必須做一個回傳。我正在做的驗證存儲在數據行數組中。因此,我必須比較該數組中的文本值,然後在輸入的文本正確或不正確時進行響應。 – gizgok 2010-08-19 17:35:11

+0

那麼,如果將客戶端驗證屬性設置爲false,則這將與Postback協同工作。我可能會推薦使用Ajax UpdatePanel來隱藏回傳? – David 2010-08-19 18:27:58

0

如果可以的話你應該避免使用該屬性。您的驗證代碼只會在您回發到服務器時運行,並且除非您確實需要,否則每次文本更改時都不希望執行完整回發。相反,使用javascript來處理由asp.net在原始HTML中呈現的input元素的onchange事件。然後記得在服務器上覆制你的驗證碼。