Я только что обновил приложение ASP.Net MVC до MVC-4. Редактор полей для входов на основе значений DateTime теперь включает объявление атрибута/значения HTML-5 type="date"
.
Теперь, когда вы просматриваете в Chrome, мои входы ввода отображаются в поле ввода "mm/dd/yyyy":
Даже когда я передаю правильно отформатированную дату с атрибутом value:
<input value="2012/10/02" type="date"/>
Я все еще получаю "mm/dd/yyyy" в поле ввода, которое есть до тех пор, пока пользователь не изменит значение вручную.
Проблема, похоже, связана с Chrome и не зависит от моей внутренней инфраструктуры. См. Эту проблему в действии: jsFiddle
... большая проблема для редактирования записей, конечно. Если пользователь вытащил запись, у которой уже есть действительная дата, она не будет проходить проверку для отправки, если только он не щелкнул в поле и reset значение вручную.
Нет проблем с другими браузерами.
Является ли это ошибкой Chrome? Или я пропустил что-то о том, как должно работать поле даты HTML-5?
UPDATE
См. Эту версию скрипта: http://jsfiddle.net/HudMe/5/ В ней есть как HTML-4, так и дата ввода HTML-5, каждая с "10/01/2012" задано как значение для загрузки страницы.
Нажмите на любое поле даты. Javascript должен поджарить предупреждение со значением поля для этого элемента.
Поскольку действительная дата была передана с атрибутом value, это должно показать "10/01/2012", но в Chrome для поля даты HTML-5 ничего не отображается. reset это значение вручную, затем нажмите еще раз, и теперь он будет отображаться.
Значение из поля HTML5 показывает и предупреждает, как и ожидалось, без настройки после загрузки в Safari, Firefox, IE и Opera.
Примечание о принятом ответе:
Для других пользователей Asp.net mvc-4 вы можете настроить формат отображения с помощью атрибута [DisplayFormat]
в объявлении поля DateTime в вашей модели представлений. (находится в qaru.site/info/27729/...)