我有一個表格,我希望客人輸入他們的name
,address
等... 在每個字段上我有一個RequiredFieldValidator
和一個RegularExpressionValidator
。RegularExpressionVididator只檢查一次
例如:
<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 但它並沒有真正幫助我的情況。
您的驗證表達式應該是:「[\ w \ s] *」 –
謝謝珍妮,我一直在尋找完全錯誤的東西。我認爲是時候對正則表達式進行一些研究 - 直到現在我一直在迴避它們。 – bg6471