2014-02-27 5 views
1

입니다. 방금 Dart을 보았습니다. <input type="form">을 편집 할 때 <p> 태그를 업데이트하고 있습니다.OnKeyDown 이벤트가 즉시 업데이트되지 않습니다. OnKeyUp이

그러나 onKeyDown 이벤트를 사용하면 즉시 업데이트되지 않지만 1 키 누름으로 지연됩니다. 따라서 AAA를 누르면 AA 만 표시됩니다.

onKeyUp을 사용하면 AAA가 나를 AAA로 지정합니다.

onKeyDown을 사용할 때 예상대로 업데이트되지 않는 이유는 무엇입니까?

import 'dart:html'; 

TextInputElement inputText; 
ParagraphElement pargraphText; 

void main() { 
    inputText = querySelector("#text"); 
    pargraphText = querySelector("#paragraphText"); 

    // inputText.onKeyDown.listen(updateTekst); 
    inputText.onKeyUp.listen(updateTekst); 
} 

void updateTekst(Event e) { 
    pargraphText.text = inputText.value.toUpperCase(); 
} 

답변

3

입력 요소가 아직 값이 없기 때문이다 : 여기

코드이다. keyPress 또는 keyUp에 값을 가져 오지만 keyDown에는 아직 값을 가져 오지 않습니다. 입력 필드 대신 이벤트의 값을 사용하면 첫 번째 keyDown 값도 가져옵니다.

당신은 e.keyCode을 (charCode 값이를 keyDown에 설정되지 않은)

import 'dart:convert'; 

... 

// doesn't distinguish between upper/lower case (you have to check e.shiftKey) 
UTF8.decode([e.keyCode]); 
사용할 수 있습니다
관련 문제