わかりました。マイナス/減算/-が押されたかどうかを確認するコードが必要です。押された場合は、アラートボックスを表示します。 109
と189
の両方のキーコードを試してみましたが、それでも目的の結果が得られません。 "-"
を押しても、アラートボックスが表示されません
キー押下イベント中にテストするJavaScriptcharCodesは、 [〜#〜] ascii [〜#〜] です。 。キーダウンまたはキーアップイベントで使用される場合、109は正しいkeyCodeです。
「-」のcharCodeは45です。
keydown
イベントハンドラーでこれを行わないでください。キーコードに関するさまざまなブラウザーのアイデアや、さまざまなキーボードタイプのキーコード間の潜在的なバリエーションに翻弄されます。 keypress
イベントでそれを行うと、代わりに文字コードを取得できます。これは実際に必要なものです。
document.onkeypress = function(evt) {
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
var charStr = String.fromCharCode(charCode);
if (charStr == "-") {
alert("Minus!");
}
};
JavaScriptキーイベントに関して必要になる可能性のあるすべての情報: http://unixpapa.com/js/key.html
1.event.keyCode = 109はテンキーでは「-」です
2.event.keyCode = 189は、Chromeのアルファベットキーボードキーの「-」です。
3.event.keyCode = 173 is'- 'in alphabate keybord key on firefox&on chrome 173 keycord is Mute On | Off
KeyCodesは次の方法で見つけることができます。
いくつかのコードを投稿してください。これは私のために働きます:
document.onkeydown = function (e) {
if (e.keyCode === 109 || e.keyCode === 189) {
alert('minus sign pressed');
}
};
ここにキーコードの完全なリスト: http://www.cambiaresearch.com/c4/702b8cd1-e5b0-42e6-83ac-25f0306e3e25/Javascript-Char-Codes-Key-Codes.aspx
これがうまくいくことを願っています。ユーザーがキーを押したことを検出し、探しているキーがアラートを表示する場合は、実際のキーを他のキーに変更できます。
function detectSubstract(e)
{
var evtobj=window.event? event : e //distinguish between IE's explicit event object (window.event) and Firefox's implicit.
var unicode=evtobj.charCode? evtobj.charCode : evtobj.keyCode
var actualkey=String.fromCharCode(unicode)
if (actualkey=="-")
{
alert('You pressed the minus key')
}
}
document.onkeypress=detectSubstract
ブラウザ間での実装の一貫性がないため、人々はevent.keyCode
とevent.charCode
から離れています。代わりに、event.code
を使用してください。これはstring
フィールドです。
ほとんどのブラウザはArray.includes
をサポートしているので、私は次のことを行う傾向があります。
if (['-', 'Minus', 'NumpadSubtract'].includes(e.code)) {
// do something
}