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



我在客户端验证DateTime字段时有一些问题。我用的是following我的模型类中的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日期验证方法使用JavaScript的内置Date对象来测试日期是否有效。Internet Explorer 8及以下版本不支持对Date对象使用ISO日期格式(参见JavaScript版本信息),这会导致验证失败。

看看这篇博文:ASP。. NET MVC 3:与jQuery UI日期选择器集成,并添加jQuery validate日期范围验证器。可能会有帮助。

相关内容

  • 没有找到相关文章

最新更新