Отключить проверку орфографии в текстовых полях HTML

Могу ли я как-нибудь отключить проверку орфографии в текстовых полях HTML (например, в Safari)?

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
302
0
106 375
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Ответ принят как подходящий

Обновлять: как было предложено комментатором (дополнительное вознаграждение к Как отключить проверку орфографии при вводе текста на iPhone), используйте это для обработки всех настольных и мобильных браузеров.

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

Исходный ответ: Javascript не может переопределить пользовательские настройки, поэтому, если вы не используете другой механизм, кроме текстовых полей, это невозможно (или не должно быть).

почему это было принято? это не имеет смысла, потому что может отменять пользовательские настройки, если это позволяет браузер. см. ответ ms2ger.

usr 16.08.2009 02:52

Просто потому, что это был лучший ответ на тот момент. Я предполагаю, что Михиэль еще не просмотрел и не пометил другой как правильный. Меня это устроит, так как это лучший ответ.

Eric Wendelin 17.08.2009 21:27

Важно отметить совместимость с браузером - например, Mobile Safari (iOS) не поддерживает тег - wufoo.com/html5/attributes/17-spellcheck.html

radicand 19.05.2013 17:43
stackoverflow.com/questions/3416867/… имеет правильный ответ на это (autocorrect = "off") для Mobile Safari - spellcheck= не работает
Chris S 19.12.2014 17:27

должно быть autoComplete = "off" autoCorrect = "off" autoCapitalize = "off" spellCheck = "false"

zaman 19.06.2017 14:29

Атрибуты html нечувствительны к регистру

Gio 20.07.2020 11:38

Да, используйте spellcheck = "false", как определено HTML5, например:

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

В MDN есть таблица, показывающая значение проверки орфографии по умолчанию для разных браузеров и элементов: developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/‌…

Paul 31.01.2017 20:39

Я получаю сообщение об ошибке "Проверка орфографии неизвестного свойства DOM. Вы имели в виду проверку орфографии?" Использование spellCheck, кажется, удовлетворяет его. Может быть просто реакцией.

Shanimal 09.11.2017 01:52

@Shanimal Да, react использует верблюжий регистр для атрибутов DOM. См. reactjs.org/docs/introduction-jsx.html

sookie 10.11.2017 18:57

IFrame БУДЕТ "запускать" средство проверки орфографии (если для него установлено значение true для редактирования содержимого) точно так же, как текстовое поле, по крайней мере, в Chrome.

+1 за трюк "Content-editable set to true", вот и настоящая уловка

A.T. 23.09.2013 09:04

Для Grammarly вы можете использовать:

<textarea data-gramm = "false" />

Следующий фрагмент кода отключает его для всех элементов textarea и input[type=text]:

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

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

    disableSpellCheck();
})();

Хотя указание spellcheck = "ложь" в теге <tag>, безусловно, отключит эту функцию, полезно иметь возможность включать и выключать эту функцию по мере необходимости после загрузки страницы. Итак, вот способ программной установки атрибута проверка орфографии, отличный от jQuery:

????:

<textarea id = "my-ta" spellcheck = "whatever">abcd dcba</textarea>

??????????:

function setSpellCheck( mode ) {
    var myTextArea = document.getElementById( "my-ta" )
        , myTextAreaValue = myTextArea.value
    ;
    myTextArea.value = '';
    myTextArea.setAttribute( "spellcheck", String( mode ) );
    myTextArea.value = myTextAreaValue;
    myTextArea.focus();
}

?????:

setSpellCheck( true );
setSpellCheck( 'false' );

Аргумент функции может быть логическим или строковым.

Нет необходимости перебирать содержимое текстового поля, мы просто вырезаем и вставляем то, что есть, а затем устанавливаем фокус.

Протестировано в движках мигать (Chrome (ium), Edge и др.)

Если вы создали свой HTML-элемент динамически, вам нужно отключить атрибут через JS. Однако есть небольшая ловушка:

При установке elem.contentEditable вы можете использовать либо логическое значение false, либо строку "false". Но когда вы устанавливаете elem.spellcheck, вы можете использовать только логическое значение - по какой-то причине. Таким образом, ваши варианты:

elem.spellcheck = false;

Или вариант Mac, указанный в его ответе:

elem.setAttribute("spellcheck", "false"); // Both string and boolean work here. 

Другие вопросы по теме