使用onkeypress/onkeydown返回自然语言字符,同时保留退格功能

Return natural language characters with onkeypress/onkeydown while retaining the ability to backspace

本文关键字:保留 功能 字符 onkeypress onkeydown 返回 自然语言 使用      更新时间:2023-12-20

如果我使用onkeypress,我可以以完全可读的方式返回所有字符。大写字母有效,!,?,',等等都很好。问题是我检测不到退格。

onkeydown则检测退格键。这里的问题是,它不能识别shift和字母键同时按下,它总是大写的,我不能得到撇号、感叹号、问号等。

如何在返回自然语言字符的同时使用退格和删除不需要的字符?

    <form action="">
      <textarea id="myArea" type="text" onkeydown="return myKeyPress(event)" ></textarea>
    </form>
<script>
 var socket = io();
 function myKeyPress(e){
    var keynum;
    var letter;
  if(window.event) { // IE
    keynum = e.keyCode;
  } else if(e.which){ // Netscape/Firefox/Opera
    keynum = e.which;
  }
    letter = String.fromCharCode(keynum);
    socket.emit('theText', letter);
}
     socket.on('theText', function(msg) {
      document.getElementById('myArea').value += msg;
})
</script>

这不一定是非此即彼的问题-使用onkeydown,看看他们是否按了退格键,否则什么都不做。使用按键检测其他字母。