2014-08-31 36 views
2

在這個線程The field 'Date' must be a date MVC 4問同樣的問題,但我有一個稍微不同的問題。我得到了錯誤,而使用Internet Explorer 11,無法弄清楚。
這是在我的模型該字段'BirthDate'必須是一個日期MVC 4,Internet Explorer 11

[必需]屬性
[顯示(NAME = 「出生日期」)
[數據類型(DataType.DateTime)
公共DateTime的出生日期{獲得;組; }

和jQuery是


$(函數(){
DATEFORMAT:$ .datepicker.RFC_1123;
$( '#出生日期')ATTR( '只讀',真);
$('#BirthDate')。datepicker({dateFormat:「d/M/yy」});
});

和代碼文本框

@ Html.TextBoxFor(型號=> model.RFI.BirthDate, 「{0:DD/MMM/YYYY}」,新的{日期選擇器=真,@類=「textbox_medium」,ID =「出生日期」})

支持這個格式我寫在jquery.validate.js文件下面的代碼,在「日期函數定義:函數(值,元素) 「

如果($ .browser.webkit){

// ES - 鍍鉻不使用時新日期的對象實例化的區域設置:
變種d =新日期();

return this.optional(element)|| !/ Invalid | NaN/.test(new Date(d.toLocaleDateString(value)));
}
否則{

返回this.optional(元件)|| !/無效| NaN/.test(新日期(值));
}

所提到的代碼工作正常在克羅姆但不會在Internet Explorer中的作品11 Frstly它給出了WebKit的錯誤,然後我改了日期函數的定義(替換先前的定義代碼)仍然給出「生日必須是約會」的錯誤

+0

它是一個JavaScript錯誤或你的形式發佈到服務器,你會得到來自服務器的錯誤?如果你在你的行爲(你提交這個表單)中放置了一個斷點,你會在模型中正確填充這個字段嗎? – 2014-08-31 10:31:03

+0

@DenisShulepov這不是JavaScript錯誤,因爲我刪除了與chrome相關的特定部分。當我按下頁面上的「Save」按鈕時,出現錯誤「BirthDate」必須是Date,因爲我在BirthDate聲明上方的模型[DataType(DataType.DateTime)]中提到過。 – user238361 2014-08-31 11:07:29

回答

0

我做了一個完整的測試你的情況。在IE中出現的錯誤在jquery.validate.js以下檢查:

// http://docs.jquery.com/Plugins/Validation/Methods/date 
    date: function(value, element) { 
     return this.optional(element) || !/Invalid|NaN/.test(new Date(value).toString()); 
    }, 

爲了快速證明你可以嘗試寫在控制檯下在IE和Chrome:

new Date('01/Jun/2001'); 

在Chrome中你會得到一個有效的日期,並在IE無效。

要解決該問題 - 在你的日期糾察格式更改爲一個默認的「DD/MM/YY」:

$('#BirthDate').datepicker({ dateFormat: "dd/mm/yy" }); 
相關問題