spellcheck属性默认值因元素和浏览器而异:input[type="text"]在Chrome中默认true,Firefox中默认false;textarea各浏览器基本默认true;contenteditable元素默认false;显式设为true或false才可靠控制,且type="password"等非文本输入类型会忽略该属性。

spellcheck 属性默认值是什么
大多数浏览器对 <input> 和 <textarea> 的 spellcheck 属性默认是 true,但实际行为取决于浏览器实现和输入法环境。比如 Chrome 在 type="text" 下通常启用拼写检查,而 type="email" 或 type="number" 会自动禁用——不是因为属性值变了,而是浏览器主动忽略拼写检查。
怎么显式开启或关闭拼写检查
直接在元素上设置 spellcheck 布尔属性即可,它接受两个值:true 或 false(注意:不写该属性时行为由浏览器决定,不等价于 false):
<input type="text" spellcheck="true"> <textarea spellcheck="false"></textarea>
-
spellcheck="true"强制启用(即使浏览器原本不启,也可能生效) -
spellcheck="false"明确禁用,红色波浪线会消失 - 不要写成
spellcheck="on"或spellcheck="1"—— 只有布尔字符串有效
哪些输入类型会无视 spellcheck 设置
某些 type 值会让浏览器直接忽略 spellcheck 属性,无论你设成 true 还是 false:
-
type="password":出于安全考虑,所有主流浏览器强制禁用拼写检查 -
type="number"、type="range"、type="date"等非文本型输入:没有拼写意义,属性无效 -
type="email"和type="url":部分浏览器(如 Safari)仍可能显示拼写提示,但 Chrome 通常不触发
移动端和 Safari 的特殊表现
iOS Safari 和 Android Chrome 对 spellcheck 支持较弱,尤其在 <input> 上常被系统键盘策略覆盖:
立即学习“前端免费学习笔记(深入)”;
- 即使设了
spellcheck="false",iOS 键盘仍可能显示纠错建议(这是系统级行为,HTML 无法干预) - Safari 对
<textarea>的spellcheck更敏感,但对单行<input>响应迟钝 - 若需彻底禁用纠错,可配合
autocomplete="off"和autocorrect="off"(后者是 Safari 私有属性)
真正起作用的组合通常是:<input spellcheck="false" autocorrect="off" autocomplete="off">



















