2016-08-12 6 views
1

私は表示されたときにページ上のkeypressまたは​​イベントを無効にしたい "ポップアップ" divを持っています。 Jqueryを使用してWebページ上のスペースバーとTabキーを無効にするにはどうすればいいですか?

は、私は以下のコードを試してみました:

ここ if状態で押されたキーが spacebar (32)であり、唯一の keypressを無効にするよりも、 popupボックスが表示されている場合は、私がチェック
$(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; 
} 
}); 

うまくいかなかった!

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 –

関連する問題