사용자가 입력 할 때 텍스트 상자에 텍스트를 가져 오려고 합니다 ( 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에는 "사용자가 입력 중" 과 관련된 세 가지 이벤트가 있습니다 .
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
습니까?