JavaScript addEventListener:'input'与'keyup'

mic*_*ech 7 javascript

当我想在插入后立即获得文本输入的值时,我使用'keyup'事件.

现在我在CodeReview问题中看到事件"输入"的用法是为了实现相同的目的.

CodeReview问题(第5行): https ://codereview.stackexchange.com/questions/141937/registration-form-validation-in-jquery

我有点修饰了.做了这个演示:

var box = document.querySelector('input');

box.addEventListener('keyup', function() {
  console.log('keyup: %s', this.value);
});

box.addEventListener('input', function() {
  console.log('input: %s', this.value);
});

/* RESULT
  input: a
  keyup: a
  input: ab
  keyup: ab
  input: abc
  keyup: abc
*/
Run Code Online (Sandbox Code Playgroud)
<input type="text" />
Run Code Online (Sandbox Code Playgroud)

可以看出:没有区别!

因此我的问题是:

keyup-event和input-event(用于读取文本输入的值)的用法是否有区别?

和:

是否有人应该选择一个而不是另一个?

Muk*_*ash 8

Key up 事件还检测控制键,如 enter、Ctrl、backspace、delete 等,另一方面输入事件仅针对字符数字和符号启动。这是我发现的一个区别,

Key-up 监听所有键

输入只听字符、数字和特殊字符键