0

以下の関数では、ユーザーがテキストボックスに文字を入力することはできませんが、イベントが未定義であると表示され続けます。イベントをどこでどのように定義すると思いますか?

以下は機能です:

function isNumberKey(evt)
  {
     var charCode = (evt.which) ? evt.which : event.keyCode
     if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;

     return true;
  }

以下は、これを使用できるhtmlです。

onkeypress="return isNumberKey(event)"
4

3 に答える 3

5

変化する

var charCode = (evt.which) ? evt.which : event.keyCode

var charCode = (evt.which) ? evt.which : evt.keyCode

または、jQueryを使用している場合(タグを付けたが使用していない場合)、次のことができます。

$('#textareaid').keypress(function(e) {
     if (e.which > 31 && (e.which < 48 || e.which > 57)) {
        e.preventDefault();
     }
});

あなたのhtmlはどこにありますか

<textarea id="textareaid"></textarea>

event.preventDefault()を参照してください

jQueryを使用してキーを押す方法に関する注意

入力された文字を判別するには、ハンドラー関数に渡されるイベントオブジェクトを調べます。ブラウザはこの情報を格納するために異なるプロパティを使用しますが、jQueryは.whichプロパティを正規化するため、文字コードを取得するために確実に使用できます。

.keypress()ドキュメントから取得

于 2012-04-13T13:34:58.410 に答える
0

動作するはずのコードは次のとおりです。

function checkerFunction(e){
    var charCode=e.which || e.keyCode;
    if(charCode<=31 || charCode>=48 && charCode<=57)return true;
    return false;
}

イベントバインディングは

onkeypress="return checkerFunction(window.event)"
于 2012-04-13T13:45:59.653 に答える
0

記録として、上記の回答のほとんどは矢印キーを考慮していないと思います。

あなたがこれをグーグルしている場合、これはそれがどのように機能するかであるはずです。

function isNumberKey(event)
{
   var charCode = event.charCode;
   if ((charCode < 48 || charCode > 57) && charCode != 0){
       return false;
   }
    return true;
}
于 2013-01-22T16:25:58.817 に答える