jQuery触发事件,并将退格键发送给输入,但是输入文本根本无法删除

时间:2018-07-06 01:34:43

标签: javascript jquery keyevent eventtrigger jquery-events

我有以下代码可以删除输入文本。

$(document).on('click', "button[id='del_btn']", function(event) {
  $("input[id='lvl4_text1']").select()
  $("input[id='lvl4_text1']").focus()
  //trigger backspace keycode 8, keydown and keyup envent to input
  var e = $.Event('keydown', {
    keyCode: 8,
    which: 8
  })
  $("input[id='lvl4_text1']").trigger(e)

  e = $.Event('keyup', {
    keyCode: 8,
    which: 8
  })
  $("input[id='lvl4_text1']").trigger(e)
});

//I can see keyup and keydown event was triggered successfully.
$(document).on('keyup', "input[id='lvl4_text1']", function(event) {
  console.log("level 4 text keyup" + event.which)
});

$(document).on('keydown', "input[id='lvl4_text1']", function(event) {
  console.log("level 4 text down" + event.which)
});

这非常简单明了,但是输入中的文本并未删除。 我正在使用chrome55和jquery1.8。

我不想要一种解决方法来删除输入文本,只是想知道为什么已经触发了退格键盘evnet,但是没有删除输入文本。 我也尝试了触发器删除键(键代码46)事件,没有任何变化。我还触发了“ a”(键码65)进行输入,但是输入文本无法替换。

我是js / jquery的新手,可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我建议将输入拆分为一个数组,删除数组的最后一部分

myarray.pop()

然后将其重新连接到普通句子中,然后专注于输入。

此外,.trigger()会为jQuery触发它,但不会创建实际事件,就好像在键盘上按下了删除按钮一样。