禁用HTML文本字段的拼写检查


Answers:


420

更新:根据评论者的建议(有关如何在iPhone上的文本输入上禁用拼写检查器的附加功劳),可使用它来处理所有台式机和移动浏览器。

<tag autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>

原始答案:Javascript无法覆盖用户设置,因此除非您使用文本字段以外的其他机制,否则这是不可能的(或不应该)。


4
为什么这被接受了?这没有任何意义,因为如果浏览器允许,它可以覆盖用户设置。请参阅ms2ger的答案。
usr

1
仅因为这是当时的最佳答案。我猜Michiel并没有回过头来将另一个标记为正确。对我来说这很好,因为这是一个更好的答案。
Eric Wendelin

2
需要注意的浏览器的兼容性-移动Safari浏览器(IOS)不接受,例如标签- wufoo.com/html5/attributes/17-spellcheck.html
开方

3
stackoverflow.com/questions/3416867/…autocorrect="off"对于移动Safari浏览器有正确的答案()- spellcheck=不起作用
克里斯S

1
应该为autoComplete =“ off” autoCorrect =“ off” autoCapitalize =“ off” spellCheck =“ false”
zaman

208

是的,使用HTML5spellcheck="false"定义的,例如:

<textarea spellcheck="false">
    ...
</textarea>

1
MDN的表格显示了适用于不同浏览器和元素的拼写检查的默认值: developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/…–
Paul

2
我收到错误消息:“未知DOM属性拼写检查。您是说拼写检查?” 使用spellCheck似乎可以满足要求。可能只是一个反应式的事情。
Shanimal

3
@Shanimal是的,react使用驼峰式大小写作为DOM属性。参见reactjs.org/docs/introducing-jsx.html
sookie

13

对于语法,您可以使用:

<textarea data-gramm="false" />

7

IFrame至少在Chrome中会像文本字段一样“触发”拼写检查器(如果将content-editable设置为true)。


1
+1“内容编辑设置为true”招那是真正的诀窍
AT

4

以下代码段对all textareainput[type=text]elements 禁用了它:

(function () {
    function disableSpellCheck() {
        let selector = 'input[type=text], textarea';
        let textFields = document.querySelectorAll(selector);

        textFields.forEach(
            function (field, _currentIndex, _listObj) {
                field.spellcheck = false;
            }
        );
    }

    disableSpellCheck();
})();
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.