HTML time时间选择器设置step间隔属性失效是否仍受浏览器支持
<input type="time">的step属性支持情况说明 step属性目前在Chrome、Edge、Firefox等所有主流浏览器上均正常支持,你遇到的问题不是属性失效,是对属性的作用范围有误解。
- 实际生效逻辑
step属性的参数单位为秒,你写的step="300"对应5分钟时间间隔,这个规则不会控制原生时间选择器弹出面板里展示的可选时间项,只在两个场景生效:- 点击输入框自带的上下箭头调整时间时,会严格按照你设置的5分钟间隔增减,不会走默认的1分钟步长
- 表单提交、调用原生校验接口时,会自动校验当前选中的时间是否符合步长规则,选了非5分钟整数倍的时间就会触发校验报错
- 现象原因
现在三大浏览器的原生时间选择器弹出面板,默认会把所有1分钟间隔的时间都列出来,不会因为你设了step就隐藏不符合间隔的选项,这是浏览器本身的UI实现逻辑,不是属性不支持。 - 验证方法
你可以给这个输入框绑个值变化事件,手动选一个非5分钟倍数的时间比如14:02,然后调用输入框的reportValidity()方法,马上就能看到原生的校验报错,说明step规则是正常运行的。
你的测试代码写法完全正确,参考如下:
<input type="time" id="appt" name="appt" step="300">
如果你的需求是弹出的选择面板里只展示符合间隔的时间选项,原生控件目前实现不了,需要用第三方时间选择器组件自定义配置。
相关测试现象可参考对应截图。
内容的提问来源于stack exchange,提问作者blue piranha
相关产品推荐
相关产品推荐

