【问题标题】:How do I force seconds to appear on an HTML5 "time" input control?如何强制秒出现在 HTML5“时间”输入控件上?
【发布时间】:2013-01-07 09:34:35
【问题描述】:

当我使用 JavaScript 设置 HTML5“时间”对象的值时,如下所示:

document.getElementById("settime").value = "13:24:59";

它会显示一个带有“13:24:59”的时间控件,我可以更改所有内容。但如果我这样做:

document.getElementById("settime").value = "13:25:00";

它隐藏了秒,只显示“13:25”而没有秒。在这种情况下如何强制“00”秒出现?

(顺便说一下,这是在 Google Chrome 中。)

【问题讨论】:

  • 你在不同的客户端检查过吗?

标签: javascript html time


【解决方案1】:

设置step 属性。

例如:<input id="settime" type="time" step="1" />

document.getElementById("settime").value = "13:24:00";
<input id="settime" type="time" step="1" />

关于step attribute的说明:

step 属性可以与数字输入值一起使用,以指示您可以输入的值的粒度。例如,您可能希望用户输入特定时间,但只能以 30 分钟为增量。在这种情况下,我们可以使用 step 属性,记住对于时间输入,属性的值以秒为单位。例如,30 分钟的增量将具有 1800 的步长值。<input type="time" step="1800">

【讨论】:

  • 有效,但对该行为的解释会很好。对我来说似乎不合逻辑。
  • 设置“step”强制 1 秒的间隔可用,这意味着必须显示秒数。如果将“step”设置为“60”,则会将控件的粒度限制为分钟。同样,将其设置为“3600”将只允许更改时间。
  • @feeela - 关于添加的 step 属性的注释。
  • 感谢“canIuse”链接,IE11 不支持,Safari 也不支持。好伤心
  • 这在 Chrome 83 中不起作用。 仍然在下拉菜单中显示每一分钟,而不是每 10 分钟显示一次
猜你喜欢
  • 2019-01-13
  • 2015-04-17
  • 1970-01-01
  • 1970-01-01
  • 2018-02-13
  • 2018-05-21
  • 2014-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多