【问题标题】:Input = time, How to allow input of only the hour. No minutes or seconds输入 = 时间,如何只允许输入小时。没有分钟或秒
【发布时间】:2021-03-15 20:48:46
【问题描述】:

我想允许用户输入时间,但只允许输入小时,不能输入分钟或秒。我知道文本或数字字段会更好,但需要将输入作为时间发布。

我已尝试将 step 属性设置为 600,但这只会删除毫秒。

【问题讨论】:

  • 为什么不设置一个最小值和最大值在 0 到 23 之间的文本输入?在代码的最后,您可以根据其他输入或类似的东西创建一个 Date 对象。
  • 不幸的是,我需要输入时间字段。发布时因为它是作为 DateTime 对象接收的

标签: javascript html


【解决方案1】:

当我尝试使用接受的答案中建议的代码时,它并没有像预期的那样对我有用,所以我只想分享我的经验,如果有人遇到同样的问题:

在我的情况下,我的输入没有毫秒,所以这样做就足够了:

<input type='time' step="3600" >

【讨论】:

    【解决方案2】:

    step 属性是以毫秒为单位的步数,因此在这种情况下,您应该使用60 * 60 * 1000(60 分钟 * 60 秒 * 1000 毫秒 = 1 小时)作为值:

    &lt;input type="time" step="3600000" /&gt;

    请注意,这在 Safari 中不起作用,但我确实在 Chrome 中进行了测试。 Safari 根本不支持这种类型,所以据我所知没有发生任何验证。这使得它不能普遍兼容。

    【讨论】:

    • 为什么不使用日期选择器呢? jQuery Ui datepickerBootstrap datepicker
    • @Sim1-81 那么您必须将 jQuery(+Bootstrap) 添加到项目中。 HTML5 有它自己的日期选择器
    • @LucaKiebel 确实如此,这也让我有点吃惊。MDN 说它的日期以毫秒为单位,因为这就是底层机制,但是是的,两者都有效。不应该是这样。如果我想跳过 1000 天怎么办?我知道,这种情况很少发生,但谁知道呢。另外,我同意,如果浏览器/操作系统已经带有用户习惯的完全足够的日期选择器,则添加 更多 依赖项不是您想要的。
    • @Luca Kiebel 因为使用 jQuery 或引导程序,您可以为选择器的输出指定您喜欢的日期格式。 HTML5 只有开始日期、结束日期和步骤
    • @Sim1-81 使用 Vanilla JS,您的输出是一个简单的 Date 对象,您可以按照您想要的任何方式进行格式化。如果浏览器已经提供了实现它的方法,则无需添加具有自己约定的庞大库。即使这种方式与您习惯的方式略有不同。
    猜你喜欢
    • 1970-01-01
    • 2016-07-14
    • 1970-01-01
    • 2021-03-22
    • 2021-03-30
    • 2021-07-10
    • 1970-01-01
    • 2020-10-14
    相关资源
    最近更新 更多