防止默认写信

Prevent default writting letter

我想添加功能,当我点击“L”时发生了一些事情,但是 L 不会被写入。

L 字母的映射函数工作正常,但即使我添加了阻止默认功能,当我在文本区域中设置光标时,L 字母总是被写入文本区域。请问这个可以解决吗?

<html>

<body>
<textarea id="a">Test</textarea>
<textarea id="ab"></textarea>

<script>
function send(e) {
            if (e.keyCode == 76) {
                e.preventDefault();
                ab.value += a.value;
                a.value = "";
            }
        }
        document.addEventListener('keyup', send);
        
</script>
</body>

</html>

keypress 事件完成后,将插入按下的键。 keyup 侦听器将在 插入密钥后 运行 ,因此在事件上调用 preventDefault 不会阻止密钥出现。

改为添加 keypress 侦听器。

function send(e) {
  if (e.keyCode == 76) {
    e.preventDefault();
    ab.value += a.value;
    a.value = "";
  }
}
document.addEventListener('keypress', send);
<textarea id="a">Test</textarea>
<textarea id="ab"></textarea>