番号は以下に定義hereとして設定するキーコードマップから返されました。このセットはASCIIに対応していませんが、いくつかの点では似ています。私は見て、数字から文字を取得する方法についての詳細を見つけることができるかどうかを確認します。
はまた、私はあなたの代わりにe.keyCode
のe.which
を使用し、さらにコメントとしてW3Schoolsのを信頼したことがないお勧めします。
e.originalEvent.keyIdentifier
をご覧ください。これにはいくつかのユニコードが含まれているようです。しかし、それはまだ0〜9の代わりに数字パッドをA〜Hにマップします。私はそれが単に数字を嫌うと思う。どこかでboolean isnumpadフラグがあるはずです。 DOM3 APIにはブール値の数値があります。
数値パッドで1を押すとe.originalEvent.keyLocation === 3
が表示されます。
定数KeyboardEvent.DOM_KEY_LOCATION_STANDARDの値が0x00であるKeyboardEvent.DOM_KEY_LOCATION_STANDARD
W3 specから。 KeyboardEvent.DOM_KEY_LOCATION_LEFT 定数KeyboardEvent.DOM_KEY_LOCATION_LEFTの値は0x01です。 KeyboardEvent.DOM_KEY_LOCATION_RIGHT 定数KeyboardEvent.DOM_KEY_LOCATION_RIGHTの値は0x02です。定数KeyboardEvent.DOM_KEY_LOCATION_NUMPADの KeyboardEvent.DOM_KEY_LOCATION_NUMPAD 値が0x03の
のでkeylocation === 3マップはあなたの手で、その後テンキーをキャッチしているつもりDOM_KEY_LOCATION_NUMPADすることです。テンキーは0-9
[ビッグ免責事項]
これはFF &クロムは何をすべきかであるに-Hをマップするためにあなたがキーコードから48を引くことができます。神はIEが何をしているか知っています。あなたは自分自身でその獣を征服することができます。私はW3仕様とはまったく異なる何かをしていることは間違いありません。
すべての回答をいただきありがとうございますが、私はOnKeyDownのみを提供するエディタが提供するコンポーネントを使用しています...私は嫌です。私はw3schoolが悪いことを知らなかった... – LB40
あなたはonkeydownをうまく使うことができます。理想的ではありません。しかし、あなたがイベントオブジェクトを持っているならevent.whichを取得することができます。あなたが望むならば、あなたはkeylocationを取得して、numpadを完全にブロックすることができます。 – Raynos
私はイベント全体を持っていませんが、keyCodeとboolだけがコントロールを押してシフトを押しただけです。 – LB40