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

Posted

技术标签:

【中文标题】JQuery Mobile 日期选择器未在 Chrome 中显示日期【英文标题】:JQuery Mobile Date picker not showing date in Chrome 【发布时间】:2013-10-27 22:57:36 【问题描述】:

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

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

模型属性定义为:

<Required>
<RegularExpression("\d2/\d2/\d4", 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 真正显示日期?

谢谢。

【问题讨论】:

Chrome 正在对日期字段进行各种“智能”编辑这让我们抓狂。我的解决方案(如下)是在加载时将字段类型从 date 更改为 text 【参考方案1】:

根据the W3C,传递给&lt;input type="date"&gt; 元素的值应该是RFC3339 格式。这是ISO8601的特定个人资料。

也就是说,你需要传递yyyy-MM-dd格式的值。

【讨论】:

【参考方案2】:

刚刚遇到同样的问题。

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

【讨论】:

谢谢,这对我很有帮助。我仍然很困惑为什么 Darin Dimitrov 的解决方案对我不起作用。在这里查看***.com/questions/12633471/… @jomsk1e:似乎是 Chrome 和 jQueryUI 日期选择器的问题,比任何 MVC 问题都多。仍在寻找正确的解决方案,但这可以避免 Chrome 过于聪明(目前)。

以上是关于JQuery Mobile 日期选择器未在 Chrome 中显示日期的主要内容,如果未能解决你的问题,请参考以下文章