disable all keyup/keydown/keypressed events presen

2020-08-17 05:44发布

I am having plenty of key events here on my page.Is there any way to disable all the keyup/keydown/keypressed events present on page rather than disabling each event separately. i am looking for solution using javascript/jquery.

Thanks!!

7条回答
干净又极端
2楼-- · 2020-08-17 06:01

You could do it this way, though I expect it might be horrendously slow on larger pages:

$('*').off('keyup keydown keypress');

That's going to select every single element on the page, then remove any keyup, keydown, and keypress events that are bound to them.

If you want to prevent the user from using the backspace key to navigate to the previous page, you could try the following code:

var inputTags = ['INPUT', 'TEXTAREA'];

$(document).on('keypress', function(e) {
    if(e.which === 8 && $.inArray(e.target.tagName, inputTags) === -1)
        e.preventDefault();
});

That should restrict the use of the backspace key, except in instances where the focus is an input element where you can enter text (so an <input type="text"> or a <textarea>).

Take a look at this working demo.

查看更多
你好瞎i
3楼-- · 2020-08-17 06:04

you can use preventDefault() function to solve it

查看更多
Melony?
4楼-- · 2020-08-17 06:04

For me worked this combination:

Turn on keypress event

$(document).keypress(function(){
// Code
});

and for turning off this event I have used:

$(document).off('keypress');

查看更多
手持菜刀,她持情操
5楼-- · 2020-08-17 06:04

This code deletes the last key pressed in TextBox2, by using substr.

 `$("#TextBox2").val($("#TextBox2").val().substr(0, ($("#TextBox2").val().length-1)));`
  //removes last letter pressed.
查看更多
太酷不给撩
6楼-- · 2020-08-17 06:05

$('*').unbind('keyup keydown keypress')

查看更多
爱情/是我丢掉的垃圾
7楼-- · 2020-08-17 06:09

Try

$(document).find('*').off('keyup keydown keypressed');

and you should put this into the $(document).ready() block, after all the loaded JS on page (before </body> tag, for example).

查看更多
登录 后发表回答