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" />

但是向用户显示的是:

不显示日期的日期选择器

用户看不到日期,并且 2013 年 4 月 24 日不是 Chrome 日期选择器的默认值。如何让 chrome 实际显示日期?

谢谢。

4

2 回答 2

2

根据W3C,传递给<input type="date">元素的值应采用RFC3339格式。这是ISO8601的特定配置文件。

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

于 2013-10-19T00:24:56.217 回答
1

刚刚遇到这个完全相同的问题。

我的解决方案是通过在连接日期选择器时将类型更改为文本来避免该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 问题困扰我们,并且已经从我们最喜欢的开发浏览器变成了我们最麻烦的(兼容性问题)。

于 2014-01-29T10:42:47.710 回答