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)]

我正在使用 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 不同,我可以在哪里更改它?

感谢帮助。

4

2 回答 2

7

您可以将验证器替换为date验证dateISO器。

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

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

于 2013-01-11T04:02:18.290 回答
1

看看这篇博文: ASP.NET MVC 3: Integrating with the jQuery UI date picker and added a jQuery validate date range validator。可能会有所帮助。

于 2012-01-05T09:40:33.840 回答