how to disable the function of ESC key in JavaScript?

会有一股神秘感。 提交于 2019-12-21 05:42:13

问题


In my chat application there are some text fields which gets the user login details.

when filling the user details,If user suddenly pressed the ESC key,the data will be lost.

I need to disable the function of ESC key ? which event I need to use ? how can I do that.

my Java Script code is ,

function esc(e){
    e = e || window.event || {};
    var charCode = e.charCode || e.keyCode || e.which;
    if(charCode == 27){
    return false;
    }
}

Searched a lot in Stack overflow and google.Nothing worked.Please any one help me to do that . Thanks..


回答1:


You can bind an eventlistener to your input field to catch the Event when Esc is pressed and supress it.

document.querySelector("input").addEventListener("keydown",function(e){
    var charCode = e.charCode || e.keyCode || e.which;
    if (charCode == 27){
         alert("Escape is not allowed!");
        return false;
    }
});

Example




回答2:


I got the solution to control the " F5 , Esc , BackSpace(BS) " keys with the following code.

My Java Script code will be ,

document.attachEvent("onkeydown", win_onkeydown_handler);

function win_onkeydown_handler() {
    switch (event.keyCode) {

    case 116 : // 'F5'
         event.returnValue = false;
         event.keyCode = 0;
         break;  

    case 27: // 'Esc'
        event.returnValue = false;
        event.keyCode = 0;
        break;

    case 08: // 'BackSpace'
        if (event.srcElement.tagName == "INPUT"
                || event.srcElement.tagName == "TEXTAREA") {
        } else {
            event.returnValue = false;
            event.keyCode = 0;
        }
        break;

    }
}

Thanks who are all supported me to do this and for your suggestions.




回答3:


I have used this for a login popup code:

jQuery(document).keyup(function(e){
    if(e.keyCode==27 && popupStatus==1){
    // alert('not allowed !!!');
        // or any other code
     return false;
    }
});



回答4:


I have done something similar using jquery to limit entry to numbers

    $(inputBox).keydown(function(event) {
        // Allow only backspace and delete
        var allowed_keys = [
            46, // delete
            8, // backspace
                 ];
        if ($.inArray(event.keyCode, allowed_keys) != -1) {
            // let it happen, don't do anything
        }
        else {
            // Ensure that it is a number and stop the keypress
            if (event.keyCode < 48 || event.keyCode > 57 ) {
                event.preventDefault(); 
            }   
        }
    });


来源:https://stackoverflow.com/questions/14601616/how-to-disable-the-function-of-esc-key-in-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!