防止默认写信

Prevent default writting letter

提问人:Oříšek 提问时间:11/12/2020 更新时间:11/12/2020 访问量:131

问:

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

将函数映射到 L 字母工作正常,但即使我将 prevent default 添加到函数中,当我在其中设置光标时,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>
JavaScript 防止默认

评论


答:

1赞 CertainPerformance 11/12/2020 #1

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

改为添加侦听器。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>