autocomplete="off"对密码字段无效,应改用autocomplete="new-password";普通文本框可用autocomplete="off";兼容性兜底可加隐藏密码字段。

autocomplete="off" 能禁用大多数字段的自动填充,但对密码字段基本无效——Chrome、Edge 等现代浏览器会直接忽略它。
普通文本输入框:直接加 autocomplete="off"
适用于用户名、邮箱、手机号、验证码等非密码类字段。浏览器普遍尊重该设置,无需额外操作。
- 写在
<input>上比写在<form>上更精准,避免误伤其他字段 - 不要混用
autofocus或required的错误变体(如autorequired="off"),这些属性根本不存在 - 移动端可叠加
autocorrect="off" autocapitalize="off" spellcheck="false"防止键盘自动修正干扰
密码输入框:autocomplete="new-password" 是标准解法
这是 HTML5 明确定义的合法值,Chrome 108+、Firefox 110+、Safari 16.4+ 均已稳定支持。它向浏览器声明:“这不是要填旧密码,而是要设新密码”,从而绕过历史密码填充逻辑。
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
- 别再用
autocomplete="off"写密码框——2026 年主流浏览器仍会无视它 - 避免用
type="text"+ JS 切换 type 的方案,会导致密码明文闪现、焦点丢失、无障碍访问失败 - 若后端校验要求密码字段 name 必须为
password,那就保持 name 不变,只改 autocomplete 值
仍被填充?试试「隐藏密码占位」这个兼容性兜底方案
当 autocomplete="new-password" 在某些旧版 Edge 或定制内核 WebView 中失效时,最稳妥的 fallback 是插入一个不可见的密码字段,骗过浏览器的“首个 password 字段填充”机制。
立即学习“前端免费学习笔记(深入)”;
- 在真实密码
<input>前添加:<input type="password" style="display:none;" autocomplete="off"> - 确保它出现在 DOM 顺序最前,且不带
name或带无意义name="dummy",避免提交污染 - 此方案不依赖 JS,所有浏览器都认,但属于 hack,仅建议用于支付、金融等强敏感场景的保底
真正难搞的不是怎么写代码,而是浏览器把“帮用户填密码”当成安全功能来强制实现——你得接受:只要字段类型是 password,就永远存在被绕过的可能;能控制的只有填充触发条件和填充目标位置。


















