events - OnKeyDown事件不会立即更新,OnKeyUp是

标签 events dart dart-html

我刚开始看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();
}

最佳答案

那是因为输入元素还没有值。它在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]); 

关于events - OnKeyDown事件不会立即更新,OnKeyUp是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22064653/

相关文章:

php - 完整的日历事件数据

firebase - Flutter Firebase全局自动增量值并在文档字段中检索

dart - 更改Dart嵌入式Web服务器端口

templates - Dart 中的 Mustache 模板用法

Java awt 意外重复问题

events - 在 NERDtree 上导航时如何更改 vim 工作目录

jQuery 切换类以删除高亮

layout - Flutter,自定义滚动效果

flutter - 如何在 flutter 中等待 setter/getter ?

ajax - Dart:querySelector 的范围