我写了一个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键,然后按7,“&”返回,但键代码仍然是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。
任何帮助将受到欢迎。
提前致谢。