1

テキストボックスから正しい日付をチェックするRegularExpressionValidatorコントロールがあります..

データが挿入されたときにのみ、そのテキスト ボックスをチェックする必要があります。空のままにしておくと、検証コントロールがさらに続行できるようになります。しかし、常にコントロールは否定します。

そして、そのテキストボックスに間違った日付を入力するとエラーメッセージが表示されますが、間違った日付を入力した後に正しい日付を入力すると、エラーメッセージが消えません。

私のコードは次のとおりです。

<label for="textarea">Birth Date</label><asp:TextBox 
onkeypress="return isQuote(event);"  ID="txtbdate"  
onfocus="showCalendarControl(this);" onfocusout="return 
validdate(document.form1.txtbdate.text);"  CssClass="TextStyle1 uppercase"  
runat="server"></asp:TextBox>

<asp:MaskedEditExtender ID="MaskedEditExtender11" runat="server" 
TargetControlID="txtbdate" Mask="99-99-9999" MaskType="None" AutoComplete="true"
AcceptNegative="Left" ErrorTooltipEnabled="True" ClearMaskOnLostFocus="false"  
ClearTextOnInvalid="True" />

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"  
ErrorMessage="Enter Valid Date" 

ValidationExpression="^(?:(?:(?:0?[1-9]|1\d|2[0-8])\/(?:0?[1-9]|1[0-2]))\/(?:(?:1[6-9]|
[2-9]\d)\d{2}))$|^(?:(?:(?:31\/0?[13578]|1[02])|(?:(?:29|30)\/(?:0?[1,3-9]|1[0-2])))
\/(?:(?:1[6-9]|[2-9]\d)\d{2}))$|^(?:29\/0?2\/(?:(?:(?:1[6-9]|[2-9]\d)(?:0[48]|[2468]
[048]|[13579][26]))))$" ControlToValidate="txtbdate" Display="Dynamic" 
 ValidationGroup="Save" ForeColor="Red" Font-Bold="true" SetFocusOnError="true" 
  ></asp:RegularExpressionValidator>

助けてください........

前もって感謝します...

4

1 に答える 1

0

(この回答が間違っている場合はお知らせください。ただし、コメントから、これはあなたの問題であると思います)

Validator条件を確認した後に有効にする必要があります。このようなもの:

if (txtBdate.Text.Substring(0, 2) != "   .") { // not sure why you do this?
    RegularExpressionValidator1.Enabled = true;
}

次に、ページを検証する必要があります..これを行うには、次のように呼び出します。

Page.Validate(); // <--- this

if (Page.IsValid) {
    // etc..
}
else {
    // not valid..
}

Page.IsValidページ内のそれぞれを繰り返し処理し、とにかく有効性をチェックしていると確信しValidatorているので、呼び出す必要はないかもしれませんPage.Validate().

于 2013-01-31T11:00:35.173 に答える