Предотвратить действие по умолчанию для клавиши вкладок в 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>