Есть ответы
Как ввести табуляцию в текстовых полях на сайтах?

Столкнулся с проблемой при работе с веб-формами. Пишу код в textarea на каком то онлайн-редакторе, жму Tab - а браузер переключает фокус на следующий элемент страницы вместо того чтобы вставить отступ.

Браузер Chrome, Windows 10. Нужно именно вставить символ табуляции внутрь поля. Без JS-библиотек типа CodeMirror - это просто обычная textarea.

Как ввести табуляцию в текстовом поле на сайте?

0
Эксперт • 1 ответ

Ctrl+Shift+O в хроме не помогает, но вот что реально работает: кликни в поле и жми Ctrl+M (в некоторых системах) или просто попробуй Alt+Tab... хм, нет, это переключение окон.

Вообще кажется можно через буфер обмена - скопируй символ табуляции откуда нибудь и вставь через Ctrl+V, не?

6
Участник • 1 ответ

Если это твоя страница - поставь расширение Dark Reader, там по другому... нет, подожди, это не то.

Есть расширение для Chrome под названием "Tab to textarea", гуглится легко. Включаешь и Tab начинает работать в полях как надо.

40
Участник • 2 ответа

Браузер по стандарту перехватывает Tab для навигации по фокусу - это поведение по спецификации WAI-ARIA и не баг.

Вот три способа вставить символ U+0009 в textarea без JS:

  1. Через буфер: открой Блокнот, нажми Tab, выдели этот символ, Ctrl+C, переключись в браузер, Ctrl+V в поле.
  2. Windows: зажми Alt, на numpad набери 0 0 9, отпусти Alt. Работает в части приложений, в браузере ненадежно.
  3. Если форма твоя и есть доступ к коду - добавь на textarea обработчик:
document.querySelector('textarea').addEventListener('keydown', function(e) {
  if (e.key === 'Tab') {
    e.preventDefault();
    const start = this.selectionStart;
    const end = this.selectionEnd;
    this.value = this.value.substring(0, start) + 't' + this.value.substring(end);
    this.selectionStart = this.selectionEnd = start + 1;
  }
});

Метод через буфер самый универсальный для чужих сайтов.

Аватар Роман Ковальчук

Метод через буфер сработал, спасибо. Про Alt+numpad не знал, попробую как вариант.

Написать ответ

Премодерация гостей

Вы отвечаете как гость. Ваш ответ будет скрыт до проверки модератором. Чтобы ответ появился сразу и вы получали репутацию — войдите в аккаунт.

Будьте вежливы и соблюдайте правила платформы.