JQuery Mobile日期选择器未在Chrome中显示日期

时间:2013-10-19 00:14:04

标签: asp.net vb.net html5 google-chrome asp.net-mvc-4

我有一个使用JQuery Mobile的MVC 4站点。我正在使用带有EditorFor的模型来渲染日期编辑器。在MVC我有这个:

@Html.EditorFor(Function(model) model.ActionDate)

模型属性定义为:

<Required>
<RegularExpression("\d{2}/\d{2}/\d{4}", ErrorMessage:="Please enter a date in the format of MM/DD/YY")>
<DataType(DataType.Date)>
<DisplayFormat(ApplyFormatInEditMode:=True, DataFormatString:="MM/dd/yyyy")>
<Display(Name:="Action Date")>
Public Property ActionDate As Date

它呈现HTML值为:

<input type="date" ... value="04/24/2013" />

但向用户显示的是:

Date Picker with Date not Showing

用户看不到日期,而且4/24/2013不是Chrome日期选择器的默认设置。如何让chrome实际显示日期?

感谢。

2 个答案:

答案 0 :(得分:2)

根据the W3C,传递给<input type="date">元素的值应为RFC3339格式。这是ISO8601的特定个人资料。

换句话说,您需要传递yyyy-MM-dd格式的值。

答案 1 :(得分:1)

刚刚遇到同样的问题。

我的解决方案是在连接datepicker时通过将类型更改为文本来避免type="date"问题:

$('#Date').removeAttr('type').attr('type', 'text').datepicker();

如果您不使用JQueryUI,只需删除datePicker部分。

由于我还需要强制使用默认日期格式(再次感谢Chrome),它是:

$('#Date').removeAttr('type').attr('type', 'text').datepicker({ dateFormat: 'dd/mm/yy' });

Chrome现在经常因为jQueryUI问题而咬我们,并且已经从我们最喜欢的开发浏览器变成了最麻烦的(出于兼容性问题)。