Internet Explorer中的MVC 3客户端日期验证问题

cez*_*tek 3 datetime datetimepicker client-side-validation asp.net-mvc-3

我在客户端验证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)]
Run Code Online (Sandbox Code Playgroud)

我正在使用jQuery UI中的Datapicker来插入日期.日期格式由.强制执行

   $(document).ready(function () {
    $.datepicker.setDefaults({ dateFormat: 'yy-mm-dd' });
 });
Run Code Online (Sandbox Code Playgroud)

所以它在Firefox上工作得很好但是当我使用Datepicker插入日期时在Internet Explorer上完全崩溃.当我以格式yyyy/mm/dd而不是yyyy-mm-dd键入日期时,则没有验证错误.

有谁知道为什么Internet Explorer上的验证格式与Firefox不同,我可以在哪里更改?

感谢帮助.

jas*_*ruz 7

您可以使用date验证器替换验证dateISO器.

$.validator.methods["date"] = function (value, element) {
    return $.validator.methods.dateISO.apply(this, arguments); 
};
Run Code Online (Sandbox Code Playgroud)

默认情况下,jQuery日期验证方法使用JavaScript的内置Date对象来测试日期是否有效.Internet Explorer 8及更低版本不支持对Date对象使用ISO日期格式(请参阅JavaScript版本信息),这会导致验证失败.