0

数字以外のキーを入力したときにキーダウンイベントをキャンセルしたいだけですが、

このために、私は次のことを行いました:

function handleNum(obj){
    var e = window.event;
    var flag = true;

    if( ( e.keyCode >=  48 && e.keyCode <=  57 ) ||          
            ( e.keyCode >=  96 && e.keyCode <= 105 ) ||   
        e.keyCode ==   8 ||  
        e.keyCode ==  46 ||  
        //e.keyCode == 110 ||
        //e.keyCode == 190 ||
        e.keyCode ==  37 ||  
        e.keyCode ==  39 ||  
        e.keyCode ==  35 ||  
        e.keyCode ==  36 ||  
        e.keyCode ==   9     
    ) {
        flag = true;
    } else { 
        alert('You can type only a number!');
        console.log("doesn't return?");
                    e.preventDefault();
        flag = false;
    }
    console.log(flag);
    return flag;
}

html :

   <input type="text" onkeydown="return handleNum(this);" />

しかし、うまくいきません。どうすればこの問題を解決できますか? e.preventDefault() がどのブラウザーでも機能しない理由がわかりません。

4

2 に答える 2