如何在type为text的输入框上禁用拼写检查?

20
我希望在我的文本字段 <input type="text"> 上禁用拼写检查,以免出现任何丑陋的红色下划线。

我知道其他人也问过同样的问题,但他们总是给出将 spellcheck=false 作为答案。那是不正确的。这仅适用于textarea,而非input。

我希望至少在Chrome中实现这一点。


1
你在哪个浏览器上看到input元素的拼写检查?另外,不需要大声喊叫。 - alex
https://dev59.com/J2855IYBdhLWcg3wHwiH - leonbloy
1
同时创建一个文本区域,它只有一行且无法调整大小,以及 BAM 文本框。 - zellio
6个回答

17

2020年1月更新

spellcheck=falsespellcheck="false"现在都可以在Chrome中使用。

原回答:

正如问题中提到的,spellcheck=false在Chrome中无效,但spellcheck="false"可以成功使用。


这并没有提供问题的答案。如果您想对作者进行批评或请求澄清,请在他们的帖子下留言。 - James Donnelly
1
@JamesDonnelly 答案很简单- spellcheck="false"。但我不能发布太短的答案。这不是“对作者提出批评或请求澄清”,这是答案。 - chuck911
1
@JamesDonnelly 请在你的Chrome浏览器中自行尝试! - chuck911
2
@JamesDonnelly 可能会让人惊讶,但现在它确实可以工作了(我使用的是Chrome 31.0.1650.34)。 http://jsfiddle.net/vr9pR/ - 在两个框中输入一些拼写错误的单词。 - Alfred Xing
我也觉得可以。感谢你的回答,@chuck911。 - Marino van der Heijden
显示剩余3条评论

15

来自http://blog.whatwg.org/the-road-to-html-5-spellchecking#compatibility

谷歌浏览器提供了在<textarea>元素上实时拼写检查的功能,但是对于<input type=text> 元素则没有。它完全忽略了拼写检查属性。用户无法更改默认行为或手动检查单个字段。

所以,就到这里了。


更新: 自Chrome 13(发布于2011年8月,比这个答案晚3个月)起,也支持在<input>元素上使用。


我不会担心这个问题。拼写检查输入字段是最终用户自己的选择。您不应该强制浏览器在您的网站上表现不同。无论如何,我已经立即禁用了拼写检查。 - BalusC
1
@BalusC 这很愚蠢,有足够的理由禁用辅助选项。例如,如果您自己进行拼写检查,或者在按钮周围设置焦点光晕,您可能希望自己处理。或者,也许是一个JavaScript实践应用程序,您想测试某人的拼写能力,这还有许多其他原因。因此,您应该能够强制执行它,而幸运的是这是可能的。 - Yeti
此答案已被弃用。 - Sebas
@Sebas:我相信你想说的是“过时的” :) - BalusC

1
你可以在 <input type="text"> 中使用 spellcheck=false 或者 spellcheck="false"。这是对其他回答的小更新。

jsfiddle.net/8nc2w6e0

在Chrome 39.0.2171.95上测试通过。


0

我确信BalusC的回答在当时是准确的,但我认为它已经过时了。我正在Win7上使用Chrome 31.0.1650.57进行测试,spellcheck="false"肯定可以抑制<input type="text">中可怕的红色波浪线。

总的来说,我同意你不应该这样做,但任何规则都有例外。(在我的情况下,输入预期的是base64。)


0
<table spellcheck="false"> ....
     <td><textarea> blabla </textarea></td> ....
     ....... <td><textarea> xxxxx </textarea></td>
</table>

适用于FF CH


0
请注意,当从React/jsx引用时,属性名称应该是大写字母C的spellCheck="false"。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接