我寫了一個只允許輸入數字的JS函數。該函數的副本如下:是否在JavaScript中保留了shiftkey
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,'&'被返回,但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。
任何幫助將感激地收到。
在此先感謝。
如果你給的console.log的EVT,你會看到Shift鍵,屬性,如果按下Shift鍵,它會成爲真正的 –