客户端验证 DateTime 字段存在一些问题。我正在使用以下 我的模型类中的 DataAnnotation 到 DateTime 字段:
[Display(Name = "Beginning Date", Description = @"Insert Date yyyy-mm-dd")]
[DataType(DataType.Date, ErrorMessage = @"Insert Date yyyy-mm-dd")]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
我正在使用 jQuery UI 中的 Datapicker 来插入日期。日期格式由
强制执行 $(document).ready(function () {
$.datepicker.setDefaults({ dateFormat: 'yy-mm-dd' });
});
所以它在 Firefox 上运行良好,但在我使用 Datepicker 插入日期时在 Internet Explorer 上完全崩溃。当我以 yyyy/mm/dd 而不是 yyyy-mm-dd 格式输入日期时,不会出现验证错误。
有谁知道为什么 Internet Explorer 上的验证格式与 Firefox 上的不同以及我可以在哪里更改它?
感谢您的帮助。
最佳答案
您可以将 date
验证器替换为 dateISO
验证器。
$.validator.methods["date"] = function (value, element) {
return $.validator.methods.dateISO.apply(this, arguments);
};
默认情况下,jQuery date validation method使用 JavaScript 的内置 Date
对象来测试日期是否有效。 Internet Explorer 8 及更低版本不支持对 Date
对象使用 ISO 日期格式(请参阅 JavaScript Version Information ),这会导致验证失败。
关于asp.net-mvc-3 - Internet Explorer 中的 MVC 3 客户端日期验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6923180/