我有以下代码可以删除输入文本。
$(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的新手,可以帮忙吗?
答案 0 :(得分:0)
我建议将输入拆分为一个数组,删除数组的最后一部分
myarray.pop()
然后将其重新连接到普通句子中,然后专注于输入。
此外,.trigger()会为jQuery触发它,但不会创建实际事件,就好像在键盘上按下了删除按钮一样。