【问题标题】:OnKeyDown event not updating instantly, OnKeyUp isOnKeyDown 事件不会立即更新,OnKeyUp 是
【发布时间】:2014-02-27 09:45:46
【问题描述】:

我刚开始关注Dart。在编辑<input type="form"> 时,我正在更新<p> 标签。

但是,当我使用 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();
}

【问题讨论】:

    标签: events dart dart-html


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-11-08
      • 2013-04-30
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 2015-07-10
      • 2019-02-26
      • 2017-01-01
      • 1970-01-01
      相关资源
      最近更新 更多