【问题标题】:custom validator to check the age entered in the text box自定义验证器检查在文本框中输入的年龄
【发布时间】:2020-07-14 23:38:04
【问题描述】:

我的网页上有一个出生日期文本框。我不希望任何人输入小于 16 岁的年龄。如果有人输入小于 16 岁的年龄,我想显示错误消息“不允许小于 16 岁”。我想在服务器端而不是客户端脚本上编写此验证。下面是出生日期字段。

<input onblur="selfservice.dateBlurCallback(event)" data-options="{&quot;mode&quot;:&quot;datebox&quot;,&quot;overrideDateFormat&quot;:&quot;%-m/%-d/%Y&quot;,&quot;lockInput&quot;:false,&quot;usePlaceholder&quot;:&quot;mm/dd/yyyy&quot;,&quot;useModal&quot;:false,&quot;overrideSetDateButtonLabel&quot;:&quot;Set Date&quot;,&quot;showInitialValue&quot;:false,&quot;beforeOpenCallback&quot;:&quot;parseDateCallback&quot;}" name="field_RecordingDateID_DOT_StartDate" id="txtDOB" placeholder="mm/dd/yyyy" type="text" data-role="datebox" value="" runat="server"  ></input>

下面是我的自定义验证器:

<asp:CustomValidator Display="None" ID="CustomValidator1" runat="server" OnServerValidate="ageValidator" ControlToValidate="txtDOB" ErrorMessage=""  />

以下是我的服务器端代码:

protected void ageValidator(object source, ServerValidateEventArgs args)
        {
            DateTime dtStart = DateTime.Parse(txtDOB.Value.ToString());
            TimeSpan sp = DateTime.Now - dtStart;

            if (sp.Days < 16 * 365)
            {
                args.IsValid = false;
                CustomValidator1.ErrorMessage = "You have to be at least 16 to order the Certificate";
            }
            else
                args.IsValid = true;
        }

如果出生日期小于 16 岁,我不会看到任何错误消息。此外,一旦执行此方法,应用程序就会继续。

任何帮助将不胜感激。

【问题讨论】:

  • 我确实格式化了我的代码。
  • 您遇到了什么问题?
  • 我修改了我的问题
  • 您是否尝试调试以查看服务器端代码是否正常运行?

标签: c# asp.net validation


【解决方案1】:

您需要在您的 asp.net 控制逻辑中包含一个 ValidationSummary 控件。即使您在CustomValidator 控件中填充了一个属性,将其保留在该位置也是没有意义的。

无需完全为您编写代码,请在此处了解 ValidationControls:

https://www.codeproject.com/articles/20822/custom-validator-and-validation-summary

这是另一个很好的例子:

https://meeraacademy.com/validationsummary-control-in-asp-net/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-29
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多