必须用 value 属性设默认值,格式严格为“HH:MM”(24小时制两位数),如 value="14:30" 有效;"9:30"、"14:30:00" 等均无效或兼容性差;JS 动态赋值需补零并确保 DOM 就绪。

HTML 默认值怎么设才生效
必须用 value 属性,且格式严格为 "HH:MM"(24 小时制,两位数小时 + 冒号 + 两位数分钟),不能带秒、时区或空格。浏览器会拒绝解析 "9:30" 或 "09:30:00" 这类值,导致回退到空值。
-
value="14:30"✅ 有效 -
value="2:30"❌ 解析失败,输入框显示为空 -
value="14:30:00"❌ 多余的秒部分被忽略,实际设为"14:30"(但部分旧版 Safari 可能完全不认) -
value=""或省略value→ 输入框初始为空,不会自动填入系统当前时间
JavaScript 动态设置默认时间的常见陷阱
用 JS 赋值时,input.value 仍需遵守 "HH:MM" 格式;直接赋 new Date().toTimeString() 或 getHours()/getMinutes() 拼接但没补零,会导致值被丢弃。
- 错误写法:
input.value = now.getHours() + ':' + now.getMinutes()→ 可能产出"9:5" - 正确写法:
input.value = `${now.getHours().toString().padStart(2, '0')}:${now.getMinutes().toString().padStart(2, '0')}` - 更稳妥:用
now.toTimeString().slice(0, 5)(但注意时区影响,服务端时间可能不同步)
为什么设置了 value 却看不到默认时间?
最常见原因是页面加载时 DOM 未就绪,JS 在 元素创建前就执行了赋值;或者 CSS 隐藏了原生控件(如用了 appearance: none 但没配自定义样式),导致视觉上“没显示”,其实值已存在。
- 确保 JS 执行在
DOMContentLoaded之后,或把脚本放
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











