直接在上加spellcheck="false"可关闭拼写检查(红色波浪线),但无法禁用ios safari等系统的自动矫正;需同时设置autocorrect="off"和autocapitalize="none"才可靠生效,且密码类输入框建议额外加inputmode="text"。

input 标签怎么禁用拼写和语法自动矫正
直接在 <input> 上加 spellcheck="false" 即可关闭浏览器的拼写检查(红色波浪线),但注意:这不等于完全关闭“自动矫正”——比如 iOS Safari 的键盘自动大写、自动替换仍可能生效。
-
spellcheck="false"对 Chrome、Firefox、Edge 有效,能去掉拼写提示和右键建议 - 对 iOS Safari 和 Android Chrome,还需配合
autocorrect="off"(注意不是布尔属性,必须写完整值) -
autocomplete="off"是控制表单历史填充的,和拼写矫正无关,别混用
textarea 里 spellcheck="false" 为什么没效果
部分旧版 Safari(iOS 12–14)对 <textarea></textarea> 的 spellcheck="false" 支持不稳定。更可靠的写法是同时设置:
<textarea spellcheck="false" autocorrect="off" autocapitalize="none"></textarea>
-
autocapitalize="none"关闭首字母大写(尤其在密码、代码输入场景很关键) -
autocorrect="off"在 iOS 上比spellcheck更早生效,且兼容性更好 - 仅设
spellcheck="false"在某些安卓 WebView 中会被忽略
React 项目里 input 的 autocorrect 属性不生效
React 会把驼峰式属性名转为小写,但 autocorrect 是标准 HTML 属性,必须用小写字符串写法,不能写成 autoCorrect:
<input autocorrect="off" spellcheck="false">
- 写成
autoCorrect="off"会被 React 忽略,最终 DOM 里根本没有这个属性 - 同理,
autocapitalize、autocomplete都要保持原生小写形式 - 如果用了 Formik 或其他表单库,确认它没自动覆盖或删除这些属性
为什么加了所有属性还是被自动替换了单词
某些系统级输入法(如 macOS 的“自动拼写纠正”、iOS 的“自动更正”)优先级高于 HTML 属性。HTML 只能请求禁用,不能强制关闭:
- 用户系统设置开启“自动更正”时,
autocorrect="off"可能被忽略(尤其在中文拼音输入法下) - 密码类输入框建议额外加
inputmode="text",避免触发数字键盘或预测逻辑 - 真正需要杜绝替换的场景(如代码编辑器),得结合 JS 拦截
input事件做内容校验,HTML 属性只是第一道防线
autocorrect="off"、spellcheck="false"、autocapitalize="none",再根据目标平台补测试。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











