Проблема проверки даты на стороне клиента MVC 3 в Internet Explorer - PullRequest
3 голосов
/ 03 августа 2011

У меня проблемы с полями 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)]

Я использую Datapicker из jQuery UI для вставки даты. Формат даты применяется

   $(document).ready(function () {
    $.datepicker.setDefaults({ dateFormat: 'yy-mm-dd' });
 });

Так что он отлично работает в Firefox, но полностью сбой в Internet Explorer, когда я вставляю дату, используя Datepicker Когда я набираю дату в формате гггг / мм / дд вместо гггг-мм-дд, ошибка проверки отсутствует.

Кто-нибудь знает, почему формат проверки в Internet Explorer отличается от Firefox и где я могу его изменить?

Спасибо за помощь.

Ответы [ 2 ]

7 голосов
/ 11 января 2013

Вы можете заменить валидатор date на валидатор dateISO.

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

По умолчанию метод проверки даты jQuery использует встроенный в JavaScript объект Date для проверки правильности даты. Internet Explorer 8 и ниже не поддерживает использование формата даты ISO для объекта Date (см. Информация о версии JavaScript ), что приводит к сбою проверки.

1 голос
/ 05 января 2012
...