





Обновлять: как было предложено комментатором (дополнительное вознаграждение к Как отключить проверку орфографии при вводе текста на iPhone), используйте это для обработки всех настольных и мобильных браузеров.
<tag autocomplete = "off" autocorrect = "off" autocapitalize = "off" spellcheck = "false"/>
Исходный ответ: Javascript не может переопределить пользовательские настройки, поэтому, если вы не используете другой механизм, кроме текстовых полей, это невозможно (или не должно быть).
Просто потому, что это был лучший ответ на тот момент. Я предполагаю, что Михиэль еще не просмотрел и не пометил другой как правильный. Меня это устроит, так как это лучший ответ.
Важно отметить совместимость с браузером - например, Mobile Safari (iOS) не поддерживает тег - wufoo.com/html5/attributes/17-spellcheck.html
autocorrect = "off") для Mobile Safari - spellcheck= не работает
должно быть autoComplete = "off" autoCorrect = "off" autoCapitalize = "off" spellCheck = "false"
Атрибуты html нечувствительны к регистру
Да, используйте spellcheck = "false", как определено HTML5, например:
<textarea spellcheck = "false">
...
</textarea>
В MDN есть таблица, показывающая значение проверки орфографии по умолчанию для разных браузеров и элементов: developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/…
Я получаю сообщение об ошибке "Проверка орфографии неизвестного свойства DOM. Вы имели в виду проверку орфографии?" Использование spellCheck, кажется, удовлетворяет его. Может быть просто реакцией.
@Shanimal Да, react использует верблюжий регистр для атрибутов DOM. См. reactjs.org/docs/introduction-jsx.html
IFrame БУДЕТ "запускать" средство проверки орфографии (если для него установлено значение true для редактирования содержимого) точно так же, как текстовое поле, по крайней мере, в Chrome.
+1 за трюк "Content-editable set to true", вот и настоящая уловка
Для 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.
почему это было принято? это не имеет смысла, потому что может отменять пользовательские настройки, если это позволяет браузер. см. ответ ms2ger.