Я хотел бы иметь возможность использовать Tabключ в текстовом поле для табуляции через четыре пробела. Как сейчас, клавиша Tab перемещает мой курсор к следующему входу.
Есть ли какой-нибудь JavaScript, который захватит клавишу Tab в текстовом поле, прежде чем он появится в пользовательском интерфейсе?
Я понимаю, что некоторые браузеры (например, FireFox) могут этого не допускать. Как насчет пользовательского сочетания клавиш, например Shift+ Tabили Ctrl+ Q?
javascript
user-interface
Сейбар
источник
источник
Ответы:
Даже если вы захватываете событие
keydown
/keyup
, это единственные события, которые запускаются при нажатии клавиши табуляции, вам все равно нужен способ предотвратить выполнение действия по умолчанию, переход к следующему элементу в порядке табуляции.В Firefox вы можете вызвать
preventDefault()
метод объекта события, переданного вашему обработчику событий. В IE вы должны вернуть false из дескриптора события. Библиотека JQuery предоставляетpreventDefault
метод для своего объекта события, который работает в IE и FF.источник
keycode
8
?Я бы предпочел, чтобы отступы табуляции не работали, чем нарушали табуляцию между элементами формы.
Если вы хотите сделать отступ для вставки кода в поле Markdown, используйте Ctrl+ K(или ⌘K на Mac).
Что касается фактической остановки действия, jQuery (который использует Stack Overflow) остановит всплытие события, когда вы вернете false из обратного вызова события. Это упрощает работу с несколькими браузерами.
источник
Предыдущий ответ хорош, но я один из тех парней, которые категорически против смешивания поведения с презентацией (размещения JavaScript в моем HTML), поэтому я предпочитаю помещать свою логику обработки событий в мои файлы JavaScript. Кроме того, не все браузеры реализуют событие (или е) одинаково. Вы можете выполнить проверку перед запуском какой-либо логики:
источник
Я бы посоветовал не менять поведение клавиши по умолчанию. Я делаю как можно больше, не касаясь мыши, поэтому, если вы сделаете так, чтобы моя клавиша табуляции не переходила к следующему полю в форме, я буду очень раздражен.
Однако сочетание клавиш может быть полезно, особенно с большими блоками кода и вложенностью. Shift-TAB - плохой вариант, потому что обычно это приводит меня к предыдущему полю формы. Может быть, новая кнопка в редакторе WMD для вставки кода-TAB с помощью сочетания клавиш станет возможной?
источник
в лучшем ответе Скотта Куна есть проблема
вот
Должно быть
Из-за этого в IE не работало. Надеясь, что ScottKoon обновит код
источник
В Chrome на Mac alt-tab вставляет символ табуляции в
<textarea>
поле.Вот один:. Ви!
источник