Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取keyup事件的上一个值_Javascript_Jquery_Html - Fatal编程技术网

Javascript 获取keyup事件的上一个值

Javascript 获取keyup事件的上一个值,javascript,jquery,html,Javascript,Jquery,Html,我有一个应用程序,当用户点击backspace(键代码8)并且值为空时,我想做一些事情。但是当我用keyup事件尝试时,我会在按键后得到值,而这不是我想要的。 另外,我不想使用keydown,因为我想获取其他内容的当前值 基本上,当没有值且按下backspace时,GOTCHA会触发,但当角色刚被移除时,它也会触发 我想要的是,当输入的前一个值为空时,只记录GOTCHA $(文档).ready(()=>{ $('input')。在('keyup',e=>{ //这是目前的条件,需要进行编辑 c

我有一个应用程序,当用户点击backspace(键代码8)并且值为空时,我想做一些事情。但是当我用
keyup
事件尝试时,我会在按键后得到值,而这不是我想要的。 另外,我不想使用
keydown
,因为我想获取其他内容的当前值

基本上,当没有值且按下backspace时,GOTCHA会触发,但当角色刚被移除时,它也会触发

我想要的是,当输入的前一个值为空时,只记录GOTCHA

$(文档).ready(()=>{
$('input')。在('keyup',e=>{
//这是目前的条件,需要进行编辑
const condition=!$(e.target).val().length&&e.keyCode==8;
如果(条件){
console.log('GOTCHA');//在应该激发之前激发
}
log($(e.target.val().length+','+e.keyCode);
});
$('input')。在('keydown',e=>{
log($(e.target.val().length+','+e.keyCode);
});
});

您可以将上一个值保存在
键下输入的
数据中

$(文档).ready(()=>{
$('input')。在('keyup',e=>{
//这是目前的条件,需要进行编辑
const condition=!$(e.target).data('previousValue')。length&&e.keyCode==8;
如果(条件){
console.log('GOTCHA');//在应该激发之前激发
}
log($(e.target.val().length+','+e.keyCode);
});
$('input')。在('keydown',e=>{
log($(e.target.val().length+','+e.keyCode);
$(e.target).data('previousValue',$(e.target.val());
});
});


只需计算按键下的条件即可<代码>当角色刚被移除时,它也会触发。
我无法复制这种行为。小提琴中的代码按您的要求工作-当您尝试使用空字段删除时,它仅显示
GOTCHA
。这里整理了同样的逻辑以便更清楚:还要注意,您应该在问题中发布所有相关代码。人们不应该为了理解你的要求而离开。我已经为您编辑了这个问题以包含代码段。@Crisimilnumenorean我不知道它的工作方式与我希望的keydown相同,但我需要该回调的另一部分中的当前值,因此我无法使用它。Thanks@RoryMcCrossan事实上,我只是测试了它,但它没有按照我想要的方式工作。当您按backspace键时,输入中只有一个字符,结果将回调拆分为两个字符,谢谢:)