在HTML时间输入中实现范围

在HTML时间输入中实现范围,html,validation,text,input,time,Html,Validation,Text,Input,Time,我被要求帮助修复一个主要是python(运行Flask)的web应用程序中的一个bug,这就是我所知道的,也是我愿意提供帮助的原因。但是我的HTML知识很差,我需要帮助。我已经修复了python代码中的错误,但是我想确保用户找不到更多的方法来破坏应用程序。它与HTML表单有关,用户在HTML表单中输入交易时间。输入是带有占位符“hh:mm:ss”的文本格式,但这并不阻止他们以该格式输入除时间以外的所有内容。如果我从一开始就这样做的话,我会将这个字段设置为“时间”格式,但是现在有太多的事情依赖于它

我被要求帮助修复一个主要是python(运行Flask)的web应用程序中的一个bug,这就是我所知道的,也是我愿意提供帮助的原因。但是我的HTML知识很差,我需要帮助。我已经修复了python代码中的错误,但是我想确保用户找不到更多的方法来破坏应用程序。它与HTML表单有关,用户在HTML表单中输入交易时间。输入是带有占位符“hh:mm:ss”的文本格式,但这并不阻止他们以该格式输入除时间以外的所有内容。如果我从一开始就这样做的话,我会将这个字段设置为“时间”格式,但是现在有太多的事情依赖于它是一个文本字段,我宁愿在这个文本输入字段上设置一些验证

这段代码是:

<input type="text" name="time_left" id="time_left" placeholder="hh:mm:ss">

唯一的限制是时间不能少于00:00:00,也不能超过01:30:00。我很想在这里的某个地方添加一个min/max属性,但我怀疑它是否那么简单。尤其是文本


谁能告诉我我能做些什么(越简单越好,正如我所说,我对HTML不是很在行)

对于纯HTML5的解决方案,有两种方法。一种是将其设置为
type=“time”
输入。它的值仍然可以用
input.value
作为字符串读取,如果您关心的话

<input type="time" min="00:00:00" max="01:30:00">
两种解决方案都是可行的,各有优缺点

后者将有更好的浏览器支持,但对于接近100%的支持,您将需要一个从浏览器接管的JS库。我写道,这样做(以及更多),但如果只是这一个字段,您最好编写自己的事件处理程序,并将其附加到该输入字段的
change
事件


编辑:
模式
属性中的regexp将区分由
分隔的几个案例。第一个也是最简单的是最大时间
01:30:00
。接下来是从01:00到01:29:59的时间,最后是从00:00到00:59:59的时间。

我使用了第二个选项,它完成了我想要的。非常感谢。我现在只是在页面上添加一个描述,让用户知道这是他们允许的范围。不紧急,但是否有办法使前导0成为可选的?比如:。。。或者别的什么是的,
0?
应该可以正常工作。
模式
属性的内容基本上是Javascript所理解的一个regexp,具有隐式的开头
^
和结尾
$
。酷,有没有办法将消息从“请匹配请求的格式”更改为更具体的内容(而不是在页面上添加描述)添加
标题
属性。将用作错误消息的一部分:
<input type="text" pattern="0(1:30:00|1:[012][0-9]:[0-5][0-9]|0:[0-5][0-9]:[0-5][0-9])">