2011-05-11 109 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