数字のみを入力できるJS関数を書いています。その関数のコピーは以下の通りです:JavaScriptでシフトキーを押したままにする
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キーを押していると数字キーのいずれかが押されたときに、私の問題が起こります。返される値は、数値の上にある文字の1つです。たとえばshiftを押しながら7を押すと、 '&'が返されますが、keyCodeはまだ55です!私はそれが違うと予想していたでしょう。
私の質問はシフトキーが押されているかどうかを確認する方法です。 私は次のチェックを試してみたが、これは動作しませんでした:私は、ASP.NET 4.0を使用してい
if (keyCode === 16) {
evt.returnValue = false;
}
else {
if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 96 && keyCode <= 105) || keyCode === 9 || keyCode === 8) {
}
else {
evt.returnValue = false;
}
}
。
感謝の気持ちで助けてください。
ありがとうございます。
あなたがにconsole.logでEVTを与える場合は、Shiftキーが押された場合、それはブリリアント真 –