Javascript:event.preventDefault() 不适用于日语 IME

Wav*_*ter 5 html javascript cjk ime

我想创建一个不允许输入任何字符的文本输入(与禁用输入相同,但鼠标光标仍然显示)

function loadPage() {
  const el = document.getElementById('input-id');
  el.addEventListener('keydown', (event) => {
        event.preventDefault();
  });
}
loadPage();
Run Code Online (Sandbox Code Playgroud)
<input maxlength="0" id="input-id">
Run Code Online (Sandbox Code Playgroud)

上面的代码适用于普通字母字符。但是,当我使用IME输入日语全角字符时,它不起作用(仍然可以输入字符)

您知道问题出在哪里吗?有什么解决办法吗?

Mar*_*ček 0

对于 IME 特定事件,请查看组合事件类型规范。基本上,有三个事件可以满足您的需要compositionstartcompositionupdatecompositionend