我写了一个只允许输入数字的 JS 函数。该函数的副本如下:
function NumbersOnly(e) {
var evt = e || window.event;
if (evt) {
var keyCode = evt.charCode || evt.keyCode;
//Allow tab, backspace and numbers to be pressed, otherwise return false for everything.
//(keyCode>=96 && keyCode<=105) are the numpad numbers
if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 96 && keyCode <= 105) || keyCode === 9 || keyCode === 8) {
}
else {
evt.returnValue = false;
}
}
}
此功能适用于所有数字,但是当按住 shift 键并按下其中一个数字键时会出现问题。返回的值是数字上方的字符之一。因此,例如,如果我按住 shift 并按 7,则返回 '&' 但 keyCode 仍然是 55!我原以为会有所不同。
所以我的问题是如何检查shift键是否被按住。我尝试了以下检查,但这没有用:
if (keyCode === 16) {
evt.returnValue = false;
}
else {
if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 96 && keyCode <= 105) || keyCode === 9 || keyCode === 8) {
}
else {
evt.returnValue = false;
}
}
我正在使用 ASP.NET 4.0。
任何帮助将不胜感激。
提前致谢。