我有一个 HTML5 日期输入,我希望它的值默认设置为我模型中日期属性的值。我对格式化并不太挑剔,因为 Chrome 似乎会根据我的语言环境为我决定,但理想情况下,格式应该是一致的dd/MM/yyyy
。
这就是我设置输入的方式:
<input type="date"
ng-model="date"
value="{{ date | date: 'yyyy-MM-dd' }}" />
这在 Chrome 上运行良好,默认情况下我会看到以下内容:
(我仍然不太明白为什么必须在 中给出值yyyy-MM-dd
,如果 Chrome 仍然根据我的语言环境对其进行格式化,但这是一个不同的问题。)
我的问题是 Firefox 没有按照我指定的方式显示日期值。我认为这与将输入绑定到date
模型有关,因为我可以在属性中指定几乎任何字符串value
,并且默认情况下我仍然会在输入中看到长日期字符串:
如果我ng-model="date"
从输入标签中删除,Firefox 会很好地显示我给它的任何值。我不认为输入绑定的模型实际上对其默认值有任何影响?
我知道日期输入不受普遍支持,但鉴于它应该依赖于简单的文本输入,我不明白为什么它的值不会2013-08-05
像 Angular 的日期过滤器所指定的那样简单。
那么,如何让 Firefox 在日期输入中接受我的格式化值?
注意在用户完成编辑后,我当然会执行验证并将每个日期输入值转换为适当的Date
对象。不确定这是否与问题相关,但将其放在那里以防万一,因为输入格式显然需要保持一致,以使日期转换在所有浏览器中都能正常工作。当然,Chrome 为我决定输入格式是有问题的……