2016-08-12 59 views
1

我有一個「彈出」div,當顯示時我想禁用頁面上的任何keypress或​​事件。如何使用Jquery禁用Web頁面上的空格鍵和Tab鍵?

我想下面這段代碼:

$(document).on('keypress keydown',function (e) { 
var key = e.which; 
if(key == 32 && $(".popup").is(":visible")){ 
    // console.log($(".popup").is(":visible")); 
    // alert("keypresses yr "+(key == 32 && $(".popup").is(":visible"))); 
    e.preventDefault(); 
    return false; 
} 
}); 

在這裏,在if條件我檢查,如果按下的鍵是spacebar (32)popup框可見不僅僅是禁用keypress

沒有工作!

我正在使用jQuery版本1.11.1

+0

什麼是關鍵,如果裏面?使用e.keyCode代替 – mayk

+0

請檢查編輯 –

+0

@mayk:試過這種方式也..不工作 –

回答

1

試試你的代碼轉換爲以下內容:

$(document).on('keypress keydown',function (e) { 
    return $(".popup").is(":visible") && e.which !== 9 && e.which !== 32; 
}); 

上面的代碼將返回按下除了tabspace每一個關鍵,如果彈出菜單可見。

工作段:

$(document).on('keypress keydown', function(e) { 
 
    /* I changed it to ':focus' to demonstrate how it works inside the input */ 
 
    return $("#txt").is(":focus") && e.which !== 9 && e.which !== 32; 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> 
 
<input id="txt" type="text" />

+0

仍然不工作 –

+0

看看我的編輯@HarshvardhanSolanki –

+0

謝謝@Anjel Politis它工作順利。 –