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 中显示日期的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Ajax 微调器未在 IE7 中显示

反应本机选择器未在android上显示

相机文件选择器未在 WebView android 中打开

Xamarin 表单文件选择器未在 ios 上显示相机胶卷或图像库

联系人选择器未在 Android Studio 中提供预期结果

jQuery mobile 未在列表中显示正确的选定项目