我試圖強制用戶輸入的時間信息的15分鐘粒度。因此,例如,下午12:15和凌晨3:45和上午9:30。都是可以接受的,但下午2:35是不允許的。服務器端驗證是有效的,但如果在文本框失去焦點時告知用戶輸入無效,那麼在用戶點擊提交按鈕之前它會很好。下面是代碼:MaskedEditValidator無法在客戶端工作
<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="True" UpdateMode="Always">
<ContentTemplate>
<asp:TextBox ID="txtStartTime" runat="server" AutoPostBack="True" CausesValidation="True"/>
<Ajax:MaskedEditExtender ID="txtStartTime_MaskedEditExtender" runat="server"
TargetControlID="txtStartTime" MaskType="Time" AcceptAMPM="True"
Mask="99:99">
</Ajax:MaskedEditExtender>
<asp:RequiredFieldValidator runat="server" ID="StartTimeRequired"
ValidationGroup="EventAddEditControls" ControlToValidate="txtStartTime"
EnableClientScript="True" SetFocusOnError="True">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ErrorMessage="Invalid time format." ControlToValidate="txtStartTime"
ValidationGroup="EventAddEditControls" SetFocusOnError="True"
EnableClientScript="True" Text="Invalid time format."
ValidationExpression="^([1-9]|0[1-9]|1[012]):(00|15|30|45)\s?[aApP]\.?[mM]\.?$" />
<Ajax:MaskedEditValidator ID="MaskedEditValidator1" ControlToValidate="txtStartTime"
ControlExtender="txtStartTime_MaskedEditExtender" IsValidEmpty="False"
ValidationGroup="EventAddEditControls"
ValidationExpression="^([1-9]|0[1-9]|1[012]):(00|15|30|45)\s?[aApP]\.?[mM]\.?$"
EnableClientScript="True" SetFocusOnError="True" Text="Time format is invalid."
runat="server"></Ajax:MaskedEditValidator>
</ContentTemplate>
</asp:UpdatePanel>
我怎樣才能獲得MaskedEditExtender強制在客戶端還(假設這是可能的)的15分鐘的間隔約束?
因此,當文本框失去焦點時驗證不會發生?如果我在2:35輸入並按下回車,它會告訴我時間格式無效。但是,如果我只是從文本框中刪除,我不會驗證。 –
正確。問題是,它不驗證文本框何時失去焦點。 – Matt