我尝试了这段代码:
$(document).keyup((e)=>{
var k = e.key
if(e.keyCode == 8){
console.log(e.keyCode)
var d =$("#inp").val()
$("#inp").remove(k+d)
}
})
最佳答案
您应该使用 keydown
而不是 keyup
,并且您必须取消原始事件(使用 preventDefault()
),否则您将删除2个字符
$(document).keydown((e)=>{
var k = e.key
if(e.keyCode == 8){
e.preventDefault();
var d = $("#inp").val();
$("#inp").val(d.slice(0,-1));
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="inp" value='test text to delete'/>
如果您使用keyup
,该事件将已经执行,因此您无法再取消它。
关于jQuery:如何按退格键从输入中删除最后一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50060863/