在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.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>
链接地址: http://www.djcxy.com/p/96917.html