Skip to main content
 首页 » 编程设计

jquery datepicker在使用mvc的不同浏览器中抛出错误

2026年04月16日6276mayingbao

我的 View 显示数据库中的日期

<div class="input-group"> 
    @Html.TextBoxFor(model => model.domain_renew_date, "{0:dd/MMM/yyyy}", new { @type = "datetime", @class = "form-control" }) 
    @Html.ValidationMessageFor(model => model.domain_renew_date, "", new { @class = "text-danger" }) 
</div> 

我的日期选择器 JavaScript

 <script type="text/javascript"> 
    $(document).ready(function () { 
        $('input[type="datetime"]').datepicker({ 
            dateFormat: "dd/MM/yy", 
            changeMonth: true, 
            changeYear: true, 
            yearRange: "c-10:c+10" 
        }); 
    }); 
</script> 

声明属性的模型

[Display(Name = "Date of Renewal")] 
[DataType(DataType.Date)] 
[RequiredIf("domain_flag", "1", ErrorMessage = "Enter Renew Date")] 
public DateTime? domain_renew_date { get; set; } 

在 web.config 中

<system.web> 
  <globalization uiCulture="en" culture="en-GB" /> 
</system.web> 

这在 Chrome 和 Firefox 中运行得非常好。但在 IE 和 Safari 中出现以下错误

The field Date of Renewal must be a date

可以对代码进行哪些更改才能使其在所有浏览器中完美运行?

请您参考如下方法:

通过添加以下代码解决了错误

<script> 
jQuery.validator.addMethod( 
     'date', 
     function (value, element, params) { 
         if (this.optional(element)) return true; 
         var ok = true; 
         try { 
             $.datepicker.parseDate('dd-M-yy',value); 
         } catch (err) { 
             ok = false; 
         } 
         return ok; 
     }, 
      'Must enter date in dd-M-yy format.' 
  );