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脚本。
有人可以为我指出正确的方向,以了解如何获得验证以检查此规则吗?
解决方案
推荐阅读
- javascript - 如果我们只知道 className 的一部分,如何删除 className?
- javascript - Scrollreveal.js 使用 afterreveal 调用函数
- ruby - ruby 将字符串转换为 int 而不使用 'to_i'
- c# - 正则表达式 - 在句点之前替换字符串中的特定零
- c# - 在控制器中没有任何换行符
- python - 加快索引“还原”
- android - 如何使用 Robolectrics 对访问上下文的函数进行单元测试
- android - 订阅测试的可能性
- sqlite - 无法为 Xamarin 的 SQLite 获取正确的 nuget 版本
- javascript - JavaScript - 将尴尬的字符串转换为日期