【问题标题】:Any ideas why this MaskedEditValidator isn't behaving properly?任何想法为什么这个 MaskedEditValidator 行为不正常?
【发布时间】:2011-11-29 16:10:27
【问题描述】:

我正在尝试使以下内容对 dd-MMM-yyyy 有效。

日历扩展器将此格式传递给文本框,但从不显示在文本框中。

验证消息会出现几分之一秒,然后您再次看到标记
__-___-____

示例代码:

<ajaxToolkit:CalendarExtender runat="server" Format="dd-MMM-yyyy" 
    TargetControlID="DOB" />

<ajaxToolkit:MaskedEditValidator ID="DOBMaskedEditValidator" 
    EmptyValueBlurredText="DOB required" EmptyValueMessage="DOB required" 
    InvalidValueBlurredMessage="DOB invalid" InvalidValueMessage="DOB invalid" 
    runat="server" ControlExtender="DobMaskedEditExtender" 
    SetFocusOnError="true" Display="Dynamic" ControlToValidate="DOB"
    IsValidEmpty="false" />

<ajaxToolkit:MaskedEditExtender ID="DobMaskedEditExtender" runat="server" 
    MaskType="Date" TargetControlID="DOB" Mask="99-LLL-9999" CultureName="en-GB" 
    ClearMaskOnLostFocus="false" />

我一直在查看各种示例,但似乎无法确定问题所在。任何人都知道我们如何使用自定义日期格式来做到这一点?我应该使用具有自定义日期格式的 MaskType=Date 吗?

【问题讨论】:

  • 感谢格雷厄姆的编辑,我也打算这样做:)

标签: asp.net maskededitextender maskededitvalidator


【解决方案1】:

抱歉,伙计们忽略了显而易见的事情。我错过了 ValidationExpression 属性。我想是因为我在 MaskedEditExtender 中指定了格式,但我认为它会与验证器一起使用。

很多例子都显示了如下的正则表达式:

"^(0?[1-9]|[12][0-9]|3[01])-(jan|Jan|JAN|feb|Feb|FEB|mar|Mar|MAR|apr|Apr|APR|may|
May|MAY|jun|Jun|JUN|jul|Jul|JUL|aug|Aug|AUG|sep|Sep|SEP|oct|Oct|OCT|nov|Nov|NOV|
dec|Dec|DEC)-(19|20)\d\d\s([0-1][0-9]|[2][0-3]):([0-5][0-9])$"

但我需要它以多种语言工作,因此选择了更基本的语言:

"(^\d{2}\-?\w{3}\-?\d{4}$)"

现在一切正常。

完整的工作示例:

<ajaxToolkit:CalendarExtender runat="server" Format="dd-MMM-yyyy"
TargetControlID="DOB"></ajaxToolkit:CalendarExtender>
<ajaxToolkit:MaskedEditValidator ID="DOBMaskedEditValidator" 
ValidationExpression="(^\d{2}\-?\w{3}\-?\d{4}$)" 
EmptyValueBlurredText="<%$Resources:Resource,DOBRequired%>" 
EmptyValueMessage="<%$Resources:Resource,DOBRequired%>" 
InvalidValueBlurredMessage="<%$Resources:Resource,DOBInvalid%>" 
InvalidValueMessage="<%$Resources:Resource,DOBInvalid%>" 
runat="server" ControlExtender="DobMaskedEditExtender" 
SetFocusOnError="true" Display="Dynamic" ControlToValidate="DOB"  
IsValidEmpty="false"></ajaxToolkit:MaskedEditValidator>
<ajaxToolkit:MaskedEditExtender ID="DobMaskedEditExtender" 
ClearTextOnInvalid="false" runat="server" TargetControlID="DOB" 
Mask="99-LLL-9999" CultureName="en-GB" ClearMaskOnLostFocus="false" >
</ajaxToolkit:MaskedEditExtender>

【讨论】:

    猜你喜欢
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多