Mar*_*tin 8 jquery jquery-validate asp.net-mvc-4
我在使用我的jQuery datepicker时遇到此错误.
jQuery的:
$( ".datepicker" ).datepicker({
defaultDate: +7,
autoSize: true,
dateFormat: 'dd.mm.yy',
});
Run Code Online (Sandbox Code Playgroud)
模型:
[DisplayName("Date")]
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)]
[Required(ErrorMessage = "Date is required")]
public DateTime Date { get; set; }
Run Code Online (Sandbox Code Playgroud)
所以我希望日期格式类似dd.MM.yyyy,当我使用datepicker选择日期时,它会正确添加到字段中.但同样在同一秒内,出现验证错误The field 'Date' must be a date.
我做了测试,手动编写格式的日期dd/MM/yy,然后看起来它正在工作.因此验证器会在某处查找该格式,但我无法找到修改它的位置.
DisplayFormat 不会是验证中接受的格式。如果您想要其中包含句点的内容,我建议使用正则表达式来验证这一点。
[DisplayName("Date")]
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)]
[Required(ErrorMessage = "Date is required")]
[RegularExpression(@"PUT REGEX HERE", ErrorMessage = "Invalid Date")] // below is a link
public DateTime Date { get; set; }
Run Code Online (Sandbox Code Playgroud)
另外,我建议从 c# 到 js 时保持格式一致。
你在 JS 中有:
dateFormat: 'dd.mm.yy'
Run Code Online (Sandbox Code Playgroud)
你可能想要:
dateFormat: 'dd.mm.yyyy'
Run Code Online (Sandbox Code Playgroud)
您也可以将模型上的 DisplayFormat 属性更改为 dd.MM.yy。只是一个想法!
| 归档时间: |
|
| 查看次数: |
16242 次 |
| 最近记录: |