必须用YYYY-MM-DD格式,如2024-05-20;其他格式(如2024/05/20或2024-5-20)会被忽略导致输入框为空;JS赋值需用input.value = new Date().toISOString().slice(0,10),且须确保DOM加载完成、value在min/max范围内。

HTML 默认值怎么写才生效
必须用 YYYY-MM-DD 格式,且不能是空字符串、时间戳或中文日期。浏览器只认这个格式的字符串,其他写法(比如 "2024/05/20" 或 "2024-5-20")会被忽略,输入框保持空白。
常见错误现象: 渲染后为空;value="2024/05/20" 也不行;JavaScript 动态赋值时用了 new Date().toISOString().split('T')[0] 是对的,但直接写 new Date() 字符串就错。
- 服务端渲染或静态 HTML 中,确保后端输出的 value 是严格三位补零格式,例如
2024-05-05,不是2024-5-5 - 用 JavaScript 设置时,推荐:
input.value = new Date().toISOString().slice(0, 10) - 注意时区:
toISOString()返回 UTC 时间,如果要本地日期,可用padStart手动拼接:`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,'0')}-${String(d.getDate()).padStart(2,'0')}`
为什么设置了 value 但页面加载后还是空
最常见原因是 DOM 加载时机问题——在 元素创建前就执行了 JS 赋值,或者赋值语句被包裹在未触发的事件里。另一个隐蔽原因是表单重置( 的 reset())会清空所有 value,包括初始设置的默认值。
- 确保 JS 执行在元素存在之后,比如放在
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











