如何在文本区域中按键时触发退格键事件

How can I fire backspace event on keypress of space in a textarea?

本文关键字:事件 文本 区域      更新时间:2023-09-26

我不想模拟按退格键的效果。我希望文本字段删除字符,而无需手动操作文本区域的内容。

这是一个示例。标记

<textarea id="tex">sdfedasdgasg</textarea>

.JS

$(document).keydown(function(e) {
  var eventObj = document.createEventObject ? document.createEventObject() : document.createEvent("Events");
  if (eventObj.initEvent) {
    eventObj.initEvent("keydown", true, true);
  }
  eventObj.keyCode = 8;
  eventObj.which = 8;
  if (e.which === 32) {
    $('textarea').focus();
    var textField = document.getElementById('tex');
    textField.dispatchEvent ? textField.dispatchEvent(eventObj) : textField.fireEvent("onkeydown", eventObj);
  }
  if (e.which === 8) {
    console.log('bk');
  }
});

这将检测事件,但数据未更新。我做错了什么?

我把解决方案放在这里

https://jsfiddle.net/r6swvvew/

.HTML

Spacebar is the new backspace
<BR>
<textarea id="sample"></textarea>

杰奎里

$("#sample").keypress(function(e){
  if(e.keyCode == '32')
    {
    e.preventDefault();
    var len = $(this).val().length;
    var newval = $(this).val().substring(0, parseInt(len) - 1);
    $(this).val( newval );
  }
});