ユーザーがテキストボックスに入力すると、テキストボックスにテキストを取得しようとしています( jsfiddle Playground ):
function edValueKeyPress() {
var edValue = document.getElementById("edValue");
var s = edValue.value;
var lblValue = document.getElementById("lblValue");
lblValue.innerText = "The text box contains: " + s;
//var s = $("#edValue").val();
//$("#lblValue").text(s);
}
<input id="edValue" type="text" onKeyPress="edValueKeyPress()"><br>
<span id="lblValue">The text box contains: </span>
コードはエラーなしで実行されますが、ボックスの値が duringで常に変更前の値であることを除きます。input text
onKeyPress
質問: 実行中にテキスト ボックスのテキストを取得するにはどうすればよい
onKeyPress
ですか?
ボーナスおしゃべり
HTML DOM には、「ユーザーが入力中」に関連する 3 つのイベントがあります。
onKeyDown
onKeyPress
onKeyUp
WindowsではWM_Key
、ユーザーがキーを押したままにし、キーが繰り返され始めると、メッセージの順序が重要になります。
WM_KEYDOWN('a')
A- ユーザーがキーを押し下げましたWM_CHAR('a')
-a
ユーザーからキャラクターを受け取りましたWM_CHAR('a')
-a
ユーザーからキャラクターを受け取りましたWM_CHAR('a')
-a
ユーザーからキャラクターを受け取りましたWM_CHAR('a')
-a
ユーザーからキャラクターを受け取りましたWM_CHAR('a')
-a
ユーザーからキャラクターを受け取りましたWM_KEYUP('a')
- ユーザーがAキーを離した
テキスト コントロールに 5 文字が表示されます。aaaaa
重要な点は、WM_CHAR
繰り返されるメッセージに応答することです。そうしないと、キーが押されたときにイベントを見逃すことになります。
HTML では少し異なります。
onKeyDown
onKeyPress
onKeyDown
onKeyPress
onKeyDown
onKeyPress
onKeyDown
onKeyPress
onKeyDown
onKeyPress
onKeyUp
Html は、すべてのキーの繰り返しを提供しKeyDown
ますKeyPress
。また、KeyUp
ユーザーがキーを離したときにのみイベントが発生します。
お持ち帰り
- またはに応答できますが、が更新される前に両方とも発生します
onKeyDown
onKeyPress
input.value
onKeyUp
テキストボックス内のテキストが変更されると発生しないため、 に応答できません。
質問:実行中にテキスト ボックスのテキストを取得するにはどうすればよいonKeyPress
ですか?