如何在textarea中的空间按键上触发退格事件?

时间:2016-03-10 07:48:56

标签: javascript jquery html

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

这是一个样本。 的标记

<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');
  }
});

这会检测到该事件,但数据未获得更新。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我把解决方案放在这里

https://jsfiddle.net/r6swvvew/

HTML

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

JQuery的

$("#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 );
  }
});