Deshabilitar la corrección ortográfica en los campos de texto HTML

286

¿Puedo de alguna manera deshabilitar la corrección ortográfica en los campos de texto HTML (como se ve en, por ejemplo, Safari)?

Michiel de Mare
fuente

Respuestas:

420

Actualización : Según lo sugerido por un comentarista (crédito adicional a ¿Cómo puedo deshabilitar el corrector ortográfico en las entradas de texto en el iPhone? ), Use esto para manejar todos los navegadores de escritorio y móviles.

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

Respuesta original: Javascript no puede anular la configuración del usuario, por lo tanto, a menos que use otro mecanismo que no sea los campos de texto, esto no es (o no debería ser) posible.

Eric Wendelin
fuente
44
¿Por qué se ha aceptado esto? no tiene sentido porque puede anular la configuración de los usuarios si el navegador lo permite. ver la respuesta de ms2ger.
usr
1
Solo porque era la mejor respuesta en ese momento. Supongo que Michiel no ha vuelto y ha marcado el otro como correcto. Eso estaría bien conmigo ya que es una mejor respuesta.
Eric Wendelin
2
Importante tener en cuenta la compatibilidad del navegador: Mobile Safari (iOS) no respeta
radicando
3
stackoverflow.com/questions/3416867/… tiene la respuesta correcta a esto ( autocorrect="off") para Mobile Safari - spellcheck=no funciona
Chris S
1
debe estar autoComplete = "off" autoCorrect = "off" autoCapitalize = "off" spellCheck = "false"
zaman
208

Sí, use spellcheck="false", como lo define HTML5 , por ejemplo:

<textarea spellcheck="false">
    ...
</textarea>
Ms2ger
fuente
1
MDN tiene una tabla que muestra el valor predeterminado de la corrección ortográfica para diferentes navegadores y elementos: developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/…
Paul
2
Recibo un error "Corrector ortográfico de propiedad DOM desconocido. ¿Quisiste decir corrector ortográfico?" Usar spellCheckparece satisfacerlo. Podría ser una cosa de reacción.
Shanimal
3
@Shanimal Sí, reaccionar utiliza camel-case para los atributos DOM. Ver reactjs.org/docs/introducing-jsx.html
sookie
13

Para Grammarly puedes usar:

<textarea data-gramm="false" />
sensor
fuente
7

Un IFrame "activará" el corrector ortográfico (si tiene contenido editable configurado como verdadero) como un campo de texto, al menos en Chrome.

JCOC611
fuente
1
1 para el "conjunto de contenido editable en true" truco ese es el verdadero truco
AT
4

El siguiente fragmento de código lo desactiva para todos textareay todos los input[type=text]elementos:

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

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

    disableSpellCheck();
})();
Artur Beljajev
fuente