2011-05-11 51 views

回答

11

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

而且这个问题:Disable tab key on a specific div可以帮助你在禁用Tab键。如果你能够把自己和你结合起来,你可能已经有效了。

的禁用功能,将成为类似:

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

e.which = 9是按照给定的最后一个环节Tab键。如果你能够自己将浏览器检测包装在它周围,我想你已经有了你的工作示例。

+2

我做的preventDefault但它只是不工作:(我这样做对表格单元格 – Shaheer 2011-05-11 08:34:30

+0

你有一个examepl只是,不知道你试图用一个表格单元格呢​​?还是会发生什么当它按下标签? – 2011-05-11 08:36:35

+0

我做了一个可编辑的网格,当用户点击一个表格单元格,并按下标签,然后下一个单元格应该突出显示这工作正常,但铬也设置其他元素的焦点和每个选项卡铬移动重点关注下一件事,我不希望发生这种情况 – Shaheer 2011-05-11 08:39:25

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

关键是太晚了,您需要在keydown上调用该事件。这对我有效。

+0

这对我有用,接受的答案没有。 – James 2013-01-11 14:59:54

+1

我接受答案后没有找到这个工作。事实上 - 加密已经太晚了。感谢提示:) – 2013-07-10 21:31:40

+0

这工作!这是奇怪的情况。这里完美的解决方案。 – 2013-07-17 02:44:03

1

这可能是有点晚,但结合@ 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) { 
 
\t if (event.key == "Tab") { 
 
\t \t event.preventDefault(); 
 
     document.getElementById('element').value += " Also notice this text appears every time you press tab!"; 
 
\t } 
 
\t else { 
 
\t \t //whatever stuff if not Tab 
 
\t } 
 
} 
 
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>

运行中的代码片段,看看我的意思的例子。您现在可以使用这样的代码来替换Tab的默认操作,并将操作添加到textarea。注意:我使用.key而不是.keyCode的原因是因为.keyCode现在已被弃用为@ K._提到。 希望这有助于!

+0

只是一个提示:这比我在写这篇文章时所说的所有答案都要好。 @ EvgueniNaverniouk的答案帮助,但仍然没有100%的工作。 – IamGuest 2017-02-01 00:29:43

相关问题