在Chrome中防止对tab键进行默认操作?

我想防止按Tab键时的默认动作,只想在铬中做到这一点,我找不到解决方案,任何人都可以请帮忙吗?

我正在使用jquery


以下是关于如何检测Chrome的文章: http://javascriptly.com/2008/09/javascript-to-detect-google-chrome/ : http://javascriptly.com/2008/09/javascript-to-detect-google-chrome/

而这个问题:在特定的div上禁用tab键可能会帮助您禁用tab键。 如果你能够把自己和你结合起来,你可能已经有效了。

禁用功能将变成如下所示:

$('.textarea').on('keyup mouseup', function(e) {
  if(e.which == 9) { e.preventDefault(); }
});

e.which = 9是根据给出的最后一个链接的制表键。 如果你能够自己将浏览器检测包装在它周围,我想你已经有了你的工作示例。


input.keydown(function(event){
    if (event.keyCode === 9) {
        event.preventDefault();
    }
})

在关键时刻已经太晚了,你需要在keydown上调用事件。 这对我有效。


这可能有点晚,但结合@ EvgueniNaverniouk的回答和@K ._的评论(@ Joshua_Pendo的回答),确定您必须使用onkeydown和更新的event.key而不是event.keyCodeevent.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>
链接地址: http://www.djcxy.com/p/96917.html

上一篇: prevent default action for tab key in chrome?

下一篇: 2 event handler calling one jquery method