jQuery:如何按退格键从输入中删除最后一个字符?

标签 jquery

我尝试了这段代码:

$(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/

相关文章:

javascript - 单击时如何使标签不透明?

javascript - jQuery 灯箱。找不到方法

jquery - 使用 javascript 重新加载时顺利替换图像

javascript - 动画 jQuery UI 可拖动元素回到起始位置

java - 对 Java/Wicket 服务器的 jQuery AJAX 调用在 IE 中没有响应 (6/7/8)

javascript - 选择子li时如何将父li类设置为active

jquery - 在页面加载后创建的多个元素上使用标记或屏蔽输入插件(例如)?

javascript - AJAX 请求导致 Text.splitText 抛出错误

javascript - 让日期对象在 IE6 中工作(w/YYYY-MM-DD 参数)?

javascript - Knockout 多次点击绑定(bind)不适用于 IE8