如何为文本区域制作自动字符功能

how to make auto character feature for the textarea

很好 IDE 当你按下 '(单引号)然后另一个自动添加到它时,它很常见,所以我试着把它做成文本区域所以这是我的代码它不起作用::

var ele = document.getElementById('main');
ele.onkeypress = function(e){
  switch(e.keyCode){
      case 59: ele.innerHTML+=";"; break;
      case 39: ele.innerHTML+="'"; break;
      case 47: ele.innerHTML+='/'; break;
      case 91: ele.innerHTML+=']'; break;
      case 123: ele.innerHTML+='}'; break;
      case 45: ele.innerHTML+='-'; break;
  }
    console.log(e);
}

HTML

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

好吧 console.log(e) 正在工作,它正在记录我在 textarea 中按下按键的次数,它正在工作,但只有一次,即如果我在浏览器中打开包含所有这些代码的页面(我我正在使用 Google Chrome, latest) 并且第一次使用时当且仅当我按下其代码在 switch case 中列出的键时它才有效但之后它不起作用 console.log(e) 每次都在运行。

Textarea 元素没有 HTML 内容,因此 innerHTML 不会如您所愿。您应该使用 value 属性 代替:

var ele = document.getElementById('main');
ele.onkeypress = function(e){
  switch(e.keyCode){
      case 59: ele.value += ";"; break;
      case 39: ele.value += "'"; break;
      case 47: ele.value += '/'; break;
      case 93: ele.value += ']'; break;
      case 125: ele.value += '}'; break;
      case 45: ele.value += '-'; break;
  }
  console.log(e.keyCode);
}
<textarea id="main"></textarea>