我在客户端验证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日期范围验证器。可能会有帮助。