ユーザーが入力したテキストボックス(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>
ボックスの値が常に変更前の値であることを除いて、コードはエラーなしで実行されinput text
ます。onKeyPress
質問:テキストボックスのテキストを取得するにはどうすればよい
onKeyPress
ですか?
ボーナスチャター
HTMLDOMには「ユーザーが入力しています」に関連する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
ですか?