Следующая строка ничего не делает:
$.datepicker.setDefaults($.datepicker.regional['en-GB']);
, если вы не включите соответствующий языковой файл , который по умолчанию не включен в шаблон ASP.NET MVC 4.
Вы можете попытаться установить формат явно:
$.datepicker.setDefaults({ dateFormat: 'dd/mm/yy' });
Но это касается только того, как должна быть отформатирована дата после ее выбора в указателе даты.Это не имеет ничего общего с проверкой.
Проверка на стороне клиента выполняется с помощью плагина jquery.validate
, который, в свою очередь, использует либо настроенную в браузере культуру (которая может объяснить расхождения, наблюдаемые между FF и IE, например, один из них может быть настроен на использованиеen-GB и другие en-US) или даты ISO.
Вы можете переопределить эту пользовательскую проверку и использовать ее в своем пользовательском формате, чтобы убедиться, что она будет работать в разных браузерах:
if (!Modernizr.inputtypes.date) {
$(function () {
$.datepicker.setDefaults({ dateFormat: 'dd/mm/yy' });
$('.datefield').datepicker();
});
jQuery.validator.addMethod(
'date',
function (value, element, params) {
if (this.optional(element)) {
return true;
};
var result = false;
try {
$.datepicker.parseDate('dd/mm/yy', value);
result = true;
} catch (err) {
result = false;
}
return result;
},
''
);
}