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 />这很好用,但我有两个问题:

(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;

这会将“charCode”设置为触发事件的按键的数字 keyCode。它检查是否设置了 evt.which,如果没有设置,则使用 evt.keyCode。这是为了支持不同浏览器上的不同实现

这在此处进一步讨论:Javascript .keyCode vs. .which?

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

这会检查按下的键是否为数字,即 keyCode 介于 48 和 57 之间。

我想不出任何理由它不适用于所有键盘。

于 2012-09-21T11:57:27.187 回答
1

是的,此代码应在所有类型的键盘上有效这将检查输入的字符是否为数字,其 ASCII 值是否介于 31 和 48 之间且不大于 57 表示介于 (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 值代码只做一个帮助它得到 assci 值并回复你如果找不到 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 回答