4

テキスト領域内でキーを押すためのJavaScriptコードを作成しました。onkeydown イベントを使用して、押されたキーをキャプチャし、イベントがトリガーされたときに関数を呼び出しています。関数内で、キーを押すために event.which を使用しています。しかし、これは押された正しいキーを与えていません。押された任意の文字について、対応する大文字 (65 から 90 のみ) の Ascii 値を示します。小文字が入力されたとしても、小文字のアスキー値、つまり 97 から 122 は与えられません。例-「a」と入力すると、「A」のアスキー値が得られます。なぜこれが起こっているのか誰にもわかりませんか? これが私が使用しているコードです-

var mainDoc = document.getElementById("mainDoc");
mainDoc.onkeydown = function(event){keyPress(event);}
function keyPress(event)
{
    alert("key code : "+ event.which + " );
}

onkeypress イベントを使ってみました。これはうまくいくように見えますが、alt、control、矢印キーなどをキャプチャしません。

4

4 に答える 4

6

keydownkeyup(ほとんど)文字をまったく与えないでください。キーコードを与えます。は、文字を取得する場所です (イベント オブジェクトの、、、およびプロパティkeypressで、その文字が入力されたときの修飾キーの状態も知る必要がある場合)。このページでは、JavaScript のキーボード イベントである狂気を詳細に説明します...ctrlKeyaltKeyshiftKeymetaKey

于 2012-03-28T10:07:54.090 に答える
1

問題は、イベントがキープレス、つまり押された物理キーkeydown報告することです。このイベントは、変換されたキー、つまり押されたキーから派生した文字 ( + == ) を報告します。実際のキーを取得するには、 / (修飾キーを監視するため) と(実際の英数字のユーザー入力を監視するため)の両方を追跡する必要がある場合があります。keypressShiftaAkeydownkeyupkeypress

于 2012-03-28T10:06:56.610 に答える
0

http://www.bloggingdeveloper.com/post/KeyPress-KeyDown-KeyUp-The-Difference-Between-Javascript-Key-Events.aspxから

キーダウンとキープレスの違いを理解するには、「文字」と「キー」の違いを理解しておくと役に立ちます。「キー」はコンピューターのキーボード上の物理的なボタンであり、「文字」はボタンを押して入力する記号です。理論的には、keydown イベントと keyup イベントはキーの押下または離しを表し、keypress イベントは文字の入力を表します。理論の実装は、すべてのブラウザーで同じではありません。

于 2012-03-28T10:09:50.780 に答える
-3
function getKeyCode(event) {
   event = event || window.event;
   return event.keyCode;
}

event.keyCode を使用すると、キーコードが得られます;)

グラム

于 2012-03-28T10:07:56.430 に答える