Предотвратить действие по умолчанию для клавиши вкладок в chrome?
Я хочу ПРЕДОТВРАТИТЬ действие по умолчанию при нажатии клавиши табуляции и только хочу сделать это в chrome, я не могу найти решение для этого, может ли кто-нибудь помочь?
Я использую jquery
Ответы
Ответ 1
Вот статья о том, как обнаружить хром:
http://javascriptly.com/2008/09/javascript-to-detect-google-chrome/
И этот вопрос: Отключить ключ табуляции на конкретном div может помочь вам отключить ключ табуляции. Если вы можете комбинировать оба себя, вы, вероятно, заработали.
Функция отключения будет выглядеть примерно так:
$('.textarea').on('keyup mouseup', function(e) {
if(e.which == 9) { e.preventDefault(); }
});
e.which = 9 - это ключ табуляции в соответствии с последней ссылкой. Если вы можете самостоятельно обернуть обнаружение браузера, я думаю, у вас есть рабочий пример.
Ответ 2
input.keydown(function(event){
if (event.keyCode === 9) {
event.preventDefault();
}
})
При запуске клавиатуры слишком поздно, вам нужно вызвать событие при смене ключа. Это сработало для меня.
Ответ 3
Это может быть немного поздно, но, комбинируя @EvgueniNaverniouk answer и @K._ comment (в ответ @Joshua_Pendo), будет определено, что вы должны использовать onkeydown
и более свежий event.key
вместо event.keyCode
, То, что event.key
делает, это возвращает имя ключа вместо кода. Например, ключ tab
будет возвращен как "Tab" (это чувствительно к регистру). Вот готовый рабочий код:
function checkForTab(event) {
if (event.key == "Tab") {
event.preventDefault();
}
else {
//whatever stuff if not Tab
}
}
document.getElementById("element").onkeydown = checkForTab(event);
function checkForTab(event) {
if (event.key == "Tab") {
event.preventDefault();
document.getElementById('element').value += " Also notice this text appears every time you press tab!";
}
else {
//whatever stuff if not Tab
}
}
document.getElementById('element').onkeydown = checkForTab;
//Trick is to use keydown and use event.key instead of keyCode
<textarea id="element" style="width: 300px; height: 100px;">Press tab key here, you'll see default action doesn't occur!</textarea>