autocorrect="off" 仅在 ios safari 和部分旧版 android chrome 中生效,现代 chrome、firefox、edge 完全忽略;它仅抑制 ios 键盘自动更正,但受系统级设置和输入法影响,需配合 spellcheck="false"、autocapitalize="none"、inputmode="verbatim" 才可靠。

autocorrect="off" 在 iOS Safari 里到底管不管用
管用,但只在 iOS Safari(含 iPadOS)和部分旧版 Android Chrome 中生效;现代 Chrome、Firefox、Edge 完全忽略它。别把它当跨浏览器通用开关——这是最常踩的坑。
它真正起效的场景是:用户用 iOS 设备访问网页,键盘弹出时自动替换单词(比如把 “teh” 改成 “the”),这时 autocorrect="off" 才会压制这个行为。桌面 Safari 或 macOS 上的 Safari 也认这个属性,但需配合其他设置才彻底。
- 必须写成完整字符串:
autocorrect="off",不是布尔值autocorrect或 React 里的autoCorrect="off" - React 项目中若用 JSX,得保持小写原生写法:
<input autocorrect="off" spellcheck="false">,驼峰写法会被忽略 - 仅设
autocorrect="off"不够,iOS 还可能继续首字母大写或显示拼写下划线
为什么加了 autocorrect="off" 还被替换单词
因为 HTML 属性只是“请求”,不是“命令”。iOS 系统级设置优先级更高:如果用户在「设置 → 通用 → 键盘」里打开了「自动更正」,那网页上的 autocorrect="off" 可能被绕过,尤其在中文拼音输入法下几乎无效。
验证是否真生效,不能只看代码有没有写,得输一个错词(比如 recieve),观察两点:
– 是否出现红色波浪线
– 右键点击是否弹出“更正为…”菜单
- 两者都消失才算成功,否则说明系统级拼写检查仍在干预
- macOS Safari 还要额外关掉「编辑 → 拼写和语法 → 实时拼写检查」
- 某些第三方输入法(如搜狗、百度)完全不响应
autocorrect,得靠用户手动关输入法设置
textarea 里 autocorrect="off" 为啥没反应
textarea 对 autocorrect 的支持比 input 更弱,尤其在 iOS 12–14 旧版本中几乎不生效。单独设它基本白搭,必须组合其他属性才能压住。
可靠写法是四件套齐上:spellcheck="false"(控制下划线)、autocorrect="off"(压制 iOS 替换)、autocapitalize="none"(禁首字母大写)、inputmode="verbatim"(告诉输入法“别预测”)。
- 注意
autocapitalize="none"和autocapitalize="off"效果一样,但none是标准值 -
inputmode="verbatim"在 iOS 16.4+ 才被支持,老版本 fallback 到inputmode="text" - Formik 等表单库可能覆盖或删掉这些属性,要 inspect 元素确认 DOM 里真存在
密码类输入框要不要加 autocorrect
不用。所有主流浏览器对 <input type="password"> 默认禁用拼写检查和自动更正,autocorrect="off" 和 spellcheck="false" 都是冗余的。
但如果你用的是伪装密码的 type="text"(比如带“显示密码”按钮的场景),那就必须显式加:autocorrect="off"、spellcheck="false"、autocapitalize="none",再补上 inputmode="text" 避免数字键盘误触发。
- 别信 autocomplete="off" 能关自动纠错——它只管历史填充,和拼写无关
- 真正需要杜绝替换的场景(比如代码编辑器、SQL 输入框),HTML 属性只是第一道防线,还得用 JS 监听
input事件做内容校验
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











