【发布时间】:2020-10-28 12:40:38
【问题描述】:
假设我有以下日期/时间输入:
<input type="datetime-local" value="2020-07-08T01:40:01.123" />
这会在日期/时间选择器中显示日期/时间。选择新的日期/时间会按预期更新值。
现在,假设我有一个日期/时间输入,我用脚本设置它的值:
<input type="datetime-local" />
稍后在我的 JavaScript 中:
document.querySelector('input').value = '2020-07-08T01:40:01.123';
这似乎会导致相同的日期/时间选择器和值,就像第一个示例一样。除了用户无法更新日期/时间。它似乎被锁定在最初设置的任何位置。
我是否正确设置了值?这是浏览器错误吗?我在 Windows 上使用 Chrome。
JSFiddle 示例:https://jsfiddle.net/4buswncz/
【问题讨论】:
-
你可以这样做:
document.querySelector('input').setAttribute('value', '2020-07-08T01:40:01.123');,至于为什么它会锁定 UI,我不太确定... -
谢谢尼克。是的,这种解决方法可能有效。不幸的是,我必须修改我的 UI 库 (Riot.js) 才能做到这一点,因为它似乎正在使用
.value而由于某种原因没有调用setAttribute。嗯。我会深入研究它。谢谢你的想法。 -
你的小提琴在 Chrome 中对我有用(第二个最新版本:))。无论是否通过脚本设置,我都没有在 FF(最新版本)中获得弹出日历,但它仍然是可编辑的。你用的是什么浏览器?
-
@FluffyKitten Strange... 我在 64 位 Windows 上使用 Chrome v83.0.4103.116。对我来说,如果我单击日历图标打开选择器,然后选择任何其他值,则实际框的值不会更新。
-
对不起,你是对的......我使用箭头和数字键来编辑日期,它们都工作正常。日历日期是可选择的,但我没有考虑检查他们是否真的改变了日期。奇怪的是它可以通过文本字段而不是通过弹出日历来更改...
标签: html html-input html5-input-date