Macbook touch bar 的表单输入事件

Form input events for Macbook touch bar

当用户通过 MacBook Touch Bar 输入时,是否有 任何 事件在 form 元素上触发?

这是一个trivial example:

<textarea id="textarea"></textarea>

(function($) {
  $('#textarea')
    .on('keyup', function() {
      console.log('keyup');
    })
    .on('keydown', function() {
      console.log('keydown');
    })
    .on('keypress', function() {
      console.log('keypress')
    });
})(jQuery);

在 Safari 上,当我 "type" 使用触控栏(例如点击表情符号或自动提示的文本)时,我在网络检查器中没有看到 任何 事件安慰。但是,常规键盘将按预期触发 keydownkeypresskeyup 事件。

触摸条好像没有触发按键事件

另一种方法是收听 input event

如相关MDN documentation所述,每当值改变时都会触发该事件,这意味着它会在触摸栏改变input/textarea值时起作用.

The DOM input event is fired synchronously when the value of an <input> or <textarea> element is changed.

用法:

document.querySelector('textarea').addEventListener('input', function (event) {
    // ...
});

或...

$('textarea').on('input', function (event) {
  // ...
});