2017-07-06 16 views
3

我認爲從數據庫中顯示日期jQuery的日期選擇器投擲的錯誤在不同的瀏覽器與MVC

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

這在鉻和Firefox中工作得很好。但給出了IE和Safari以下錯誤

更新的領域日期必須是日期

可以在代碼完成什麼樣的變化,使其在所有的瀏覽器完全正常工作?

+0

,而不是'$(「輸入[類型=‘日期時間’]」)解決了'使用相同的類要在其上的所有元素('。'class-name')。datepicker({'。我希望這可以適用於所有瀏覽器 –

+0

或者從這裏獲取幫助: - https://stackoverflow.com/ a/33591786/4248328 –

+0

它仍然給我一個錯誤 –

回答

1

的誤差得到了通過添加以下代碼

<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.' 
);