1

私はこの JavaScript コードを手に入れました。これにより、テキストボックスを検証して、キーボードの数字キーの押下を受け入れることができます。

function Numeric(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode;
        if (charCode > 31 && ( charCode < 48 || charCode > 57))
        {
            document.getElementById("span").innerHTML = "Numbers Please!";
            alert("numbers only pls");
            return false;
        }
        else
        {
            document.getElementById("span").innerHTML = "";
            return true;
        }
}

HTMLNumber:<input type="text" id="num" name="num" onkeypress="return Numeric(event)" /><span id="span"></span><br />これはうまくいきますが、2 つの質問があります。

(1)。コードのこの部分で何が行われているのかについて明確な説明を得ることができますか?

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

(2)。このコードはすべての種類のキーボードで有効ですか?

4

4 に答える 4

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

This will set "charCode" to the numeric keyCode of the keypress that triggered the event. It checks if the evt.which is set, if it is not it uses evt.keyCode. This is to support different implementations on different browsers

This is further discussed here: Javascript .keyCode vs. .which?

if (charCode > 31 && ( charCode < 48 || charCode > 57))

This checks that the key pressed is numerical, IE the keyCode is between 48 and 57.

I can think of no reason it would not work on all keyboards.

于 2012-09-21T11:57:27.187 に答える
1

はい、このコードはすべてのタイプのキーボードで有効です。これは、入力された文字が、31 から 48 の間ではなく、57 を超えない ASCII 値を持つ数値であるかどうかをチェックします。これは、(48 から 57) の間の数値を意味します。キーコードが識別されます。キーコードのリストを確認してください http://www.ascii.cl/

于 2012-09-21T11:48:02.967 に答える
0

http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00000520.html ここから、その nuber Ascci 値コードを取得できますascci値が見つからない場合

于 2012-09-21T11:53:36.400 に答える
0
var charCode = (eve.which) ? eve.which : eve.keyCode

                    if ((charCode==8)||(charCode==9)||(charCode > 36 && charCode < 45 )|| (charCode > 45 && charCode < 65)||(charCode>95)&&(charCode<106))
                    return true;
                     return false;
于 2013-12-17T11:02:14.417 に答える