4

私のチャットアプリケーションには、ユーザーのログイン情報を取得するテキストフィールドがいくつかあります。

ユーザーの詳細を入力するときに、ユーザーが突然ESCキーを押すと、データが失われます。

ESCキーの機能を無効にする必要がありますか?どのイベントを使用する必要がありますか?どうやってやるの。

私のJavaスクリプトコードは、

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

Stackoverflowとgoogleでたくさん検索しました。何も機能しませんでした。誰か助けてください。ありがとう..

4

4 に答える 4

6

イベントリスナーを入力フィールドにバインドして、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;
    }
});

于 2013-01-30T10:29:55.870 に答える
5

次のコードで「F5、Esc、BackSpace(BS)」キーを制御するソリューションを入手しました。

私のJavaスクリプトコードは、

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;

    }
}

これを行うために私をサポートしてくれたすべての人とあなたの提案に感謝します。

于 2013-01-30T11:49:36.857 に答える
1

私はこれをログインポップアップコードに使用しました:

jQuery(document).keyup(function(e){
    if(e.keyCode==27 && popupStatus==1){
    // alert('not allowed !!!');
        // or any other code
     return false;
    }
});
于 2013-01-30T10:40:53.030 に答える
0

jqueryを使用してエントリを数字に制限するのと同様のことをしました

    $(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(); 
            }   
        }
    });
于 2013-01-30T10:28:21.573 に答える