按下特定键时如何将 html 标签附加到文本区域?

How to append html tag to textarea when press spesific key?

我正在尝试向 textarea 添加一个功能,当按下 Enter 时,它将向 textarea 的 innerHTML 添加 <br> 标签。

这是我的 codepen.

我已经用 texareaElement.val(); 试过了,但它直接添加到文本区域,但用户不应该看到它。应该在后台。

function textAreaNewLine(element, event) {
  // 13 is the keycode for "enter" 
  if (event.keyCode == 13) {
    var elVal = element.val();
    element.val(elVal + '<br>');
  }
}

$('#ta').on('keypress', function(event) {
  var el = $(this);
  textAreaNewLine(el, event);
  $('.main').html($('#ta').val());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea rows="4" cols="50" id="ta"></textarea>
<div class="main"></div>

如果我理解正确你的问题,你可以添加一个空行,如: 引入另一个变量 var emptyLine = "\n"; 然后将其附加到值。

勾选下面的fiddle

function textAreaNewLine(element, event) {
  // 13 is the keycode for "enter" 
  if (event.keyCode == 13) {
    var elVal = element.val();
    var emptyLine = "\n";

    element.val(elVal + emptyLine );
  }
}

$('#ta').on('keypress', function(event) {
  var el = $(this);
  textAreaNewLine(el, event);
  $('.main').html($('#ta').val());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea rows="4" cols="50" id="ta"></textarea>
<div class="main"></div>