我刚刚开始关注Dart
。我在编辑<p>
时正在更新<input type="form">
代码。
但是,当我使用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();
}
答案 0 :(得分:3)
那是因为input元素还没有值。它在keyPress或keyUp上获取值,但在keyDown上尚未获得。 如果您使用事件中的值而不是输入字段,那么即使第一个keyDown也可以获得该值。
您可以使用e.keyCode(未在keyDown上设置charCode)
import 'dart:convert';
...
// doesn't distinguish between upper/lower case (you have to check e.shiftKey)
UTF8.decode([e.keyCode]);