사용자가 입력 한 시간 정보에 대해 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>
는 어떻게 얻을 수 있습니다 (이 가능하다고 가정) 클라이언트 측에서 15 분 단위의 제약 조건을 적용 할 수있는 MaskedEditExtender : 여기 코드는?
그래서 텍스트 상자에 포커스가 없어지면 유효성 검사가 수행되지 않는 문제가 있습니까? 2:35을 입력하고 Enter 키를 누르면 시간 형식이 잘못되었음을 알립니다. 그러나 텍스트 상자 밖으로 탭하면 유효성을 얻지 못합니다. –
수정하십시오. 문제는 텍스트 상자가 포커스를 잃을 때 유효성을 검사하지 않는다는 것입니다. – Matt