2013-08-04 31 views
0

我有一個表格,我希望客人輸入他們的name,address等... 在每個字段上我有一個RequiredFieldValidator和一個RegularExpressionValidatorRegularExpressionVididator只檢查一次

例如:

<asp:TextBox ID="mailNameTextBox" runat="server" MaxLength="70" ValidationGroup="mail"></asp:TextBox> 
<asp:RegularExpressionValidator ID="mailNameTextBox_RegularExpressionValidator" runat="server" ErrorMessage="Name can only have letters or spaces." ControlToValidate="mailNameTextBox" ValidationExpression="[a-zA-Z' ']" ValidationGroup="mail" Display="Dynamic">*</asp:RegularExpressionValidator> 
<asp:RequiredFieldValidator ID="mailNameTextBox_RequiredFieldValidator" runat="server" ErrorMessage="Name field is required." ControlToValidate="mailNameTextBox" ValidationGroup="mail" Display="Dynamic">*</asp:RequiredFieldValidator> 

當我輸入,其包括被立即與一個*顯示的號碼(即,發生故障的正則表達式)和"tab"TextBox的,所述RegexValidator一個名稱,形式失敗提交。但是當我回去並刪除號碼(即通過Regex)時,Validator似乎沒有重新檢查輸入,並且表單將永遠無法提交。

有沒有一種方法可以在離開盒子時始終啓動驗證,而不僅僅是第一次(除了在TextBox失去焦點時調用驗證方法)。我原以爲這會是自動的?

我花了一些時間試圖找到這個答案,我不知道如何將我的問題的詞「通過研究」,所以我很抱歉,如果這是重複的。

我確實看到這一個: ASP.NET: RegularExpressionValidator Doesn't reCheck the input 但它並沒有真正幫助我的情況。

+0

您的驗證表達式應該是:「[\ w \ s] *」 –

+0

謝謝珍妮,我一直在尋找完全錯誤的東西。我認爲是時候對正則表達式進行一些研究 - 直到現在我一直在迴避它們。 – bg6471

回答

0

您的驗證表達式是這樣的:

[a-zA-Z' '] 

這意味着:只有一個字母或一個APOSTROPH或一個空間。

你可能想使用類似以下內容:

[\w\s]* 

這意味着:任何數量的字母或空格。

相關問題