微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

自定义验证属性不适用于不引人注目的jQuery

如何解决自定义验证属性不适用于不引人注目的jQuery

我正在尝试向表单上的出生日期字段添加自定义模型验证属性。该属性本身的工作方式与我以错误的日期提交表单时会导致验证失败。

但是,我使用的是jQuery非侵入式验证,并且虽然触发了标准模型验证属性并阻止了表单提交,但自定义项却没有。

我的自定义属性如下:

public class DateMustBeInThePast : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        if (value == null) return true;

        var date = (DateTime)value;
        return date < DateTime.Now;

    }
}

我已经将其应用于我的模型字段,如下所示:

[required(ErrorMessage = "Please enter a valid date")]
    [displayName("Date of Birth")]
    [displayFormat(DataFormatString = "{0:dd/MM/yyyy}",ApplyFormatInEditMode = true)]
    [DateMustBeInThePast(ErrorMessage = "Date of Birth must be in the past")]
    public DateTime? dob { get; set; }

因此,所有属性(例如字段)都是必需的,并且必须使用正确的格式,但是“ DateMustBeInThePast”只有在提交表单后才会被检查。

我在视图中包含了 jquery.validate.js jquery.validate.unobtrusive.js 脚本。

有人可以为我指出正确的方向,以获取如何验证此规则的信息吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。