사용자가 입력 할 때 텍스트 상자에 텍스트를 가져 오려고 합니다 ( jsfiddle 놀이터 ).
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습니까?
보너스 채터
HTML DOM에는 "사용자가 입력 중" 과 관련된 세 가지 이벤트가 있습니다 .
onKeyDownonKeyPressonKeyUp
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 에서는 약간 다릅니다.
onKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyUp
html로는 제공 KeyDown하고 KeyPress모든 키 반복합니다. 그리고 KeyUp이벤트는 사용자가 키를 놓을 때만 발생합니다.
테이크 아웃
- 나는 수 에 응답
onKeyDown하거나onKeyPress,하지만 전에 모두는 여전히 제기되는input.value업데이트되었습니다 onKeyUp텍스트 상자의 텍스트가 변경 될 때 발생하지 않기 때문에에 응답 할 수 없습니다 .
질문 : 텍스트 상자의 텍스트를 어떻게 얻 onKeyPress습니까?