【问题标题】:MVC 3 Client side date validation issue in Internet ExplorerInternet Explorer 中的 MVC 3 客户端日期验证问题
【发布时间】:2011-08-03 07:44:24
【问题描述】:

客户端验证 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 上的不同,我可以在哪里更改它?

感谢您的帮助。

【问题讨论】:

    标签: asp.net-mvc-3 datetime datetimepicker client-side-validation


    【解决方案1】:

    您可以将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),这会导致验证失败。

    【讨论】:

      【解决方案2】:
      猜你喜欢
      • 1970-01-01
      • 2017-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      相关资源
      最近更新 更多