如何在JavaScript中禁用ESC键的功能?

Hum*_*ing 3 javascript javascript-events

在我的聊天应用程序中,有一些文本字段可以获取用户登录详细信息.

填写用户详细信息时,如果用户突然按下ESC键,数据将丢失.

我需要禁用ESC键的功能吗?我需要使用哪个活动?我怎样才能做到这一点.

我的Java脚本代码是,

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

在Stack overflow和google中搜索了很多.没有任何工作.请任何人帮助我这样做.谢谢..

Chr*_*oph 6

您可以将eventlistener绑定到输入字段,以便在Esc按下并按下它时捕获事件.

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;
    }
});
Run Code Online (Sandbox Code Playgroud)


Hum*_*ing 5

我得到了使用以下代码控制“ F5 , Esc , BackSpace(BS) ”键的解决方案。

我的 Java Script 代码将是,

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;

    }
}
Run Code Online (Sandbox Code Playgroud)

感谢所有支持我这样做的人以及您的建议。

  • 你应该**不**使用这个代码!这仅适用于 Internet Explorer,在所有其他浏览器中都将失败。绑定事件处理程序的正确方法是通过 `addEventListener` 而不是通过 `attachEvent`! (12认同)