【问题标题】:jQuery trigger event and send backspace key to input, but input text could not be deleted at alljQuery触发事件并发送退格键输入,但输入文本根本无法删除
【发布时间】:2018-07-06 01:34:42
【问题描述】:

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

$(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 已经被触发,但输入文本没有被删除。 我也尝试了触发 delete key(keycode 46) 事件,没有任何改变。我也触发了'a'(keycode 65)输入,但是输入的文字无法替换。

我是 js/jquery 的新手,谁能帮忙?

【问题讨论】:

    标签: javascript jquery keyevent eventtrigger jquery-events


    【解决方案1】:

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

    myarray.pop()
    

    然后将其重新组合成一个常规句子,然后专注于输入。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多