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,传递给<input type="date">
元素的值应该是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 中显示日期的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin 表单文件选择器未在 ios 上显示相机胶卷或图像库