我刚刚将一个 ASP.Net MVC 应用程序升级到 MVC-4。基于 DateTime 值的输入字段编辑器现在包括 HTML-5type="date"
属性/值声明。
现在,在 Chrome 中查看时,我的日期输入在输入字段中显示为“mm/dd/yyyy”:
即使我使用 value 属性传入格式正确的日期:
<input value="2012/10/02" type="date"/>
我仍然在输入框中得到“mm/dd/yyyy”,直到用户手动更改值。
问题似乎出在 Chrome 上,并且与我的后端框架无关。看看这个问题的实际效果:jsFiddle
...编辑记录的大问题,当然。如果用户提取了已经具有有效日期的记录,则提交时将不会通过验证,除非她/他单击该字段并手动重置该值。
其他浏览器没有问题。
这是 Chrome 错误吗?还是我错过了 HTML-5 日期字段的工作方式?
更新
请参阅此修订小提琴: http: //jsfiddle.net/HudMe/5/ 它同时具有 HTML-4 和 HTML-5 日期输入,每个都将“10/01/2012”设置为页面加载值.
单击任一日期字段。Javascript 应该使用该元素的字段值发出警报。
因为通过 value 属性传入了一个有效日期,所以它应该显示“10/01/2012”,但在 Chrome 中,对于 HTML-5 日期字段,什么都没有显示。手动重置此值,然后再次单击,它现在将显示。
在 Safari、Firefox、IE 和 Opera 中页面加载后,HTML5 字段的值无需调整即可按预期显示和提醒。
接受答案的注意事项:
对于 Asp.net mvc-4 的其他用户,您可以使用[DisplayFormat]
视图模型中 DateTime 字段声明中的属性调整显示格式。(可在https://stackoverflow.com/a/12634470/613004找到)