Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 绑定事件期间检索到不正确的输入值_Javascript_Jquery_Jquery Events - Fatal编程技术网

Javascript 绑定事件期间检索到不正确的输入值

Javascript 绑定事件期间检索到不正确的输入值,javascript,jquery,jquery-events,Javascript,Jquery,Jquery Events,我正在根据键入文本框的输入以以下方式执行一些筛选操作: $("#search").on('change keyup', function () { var search = $.trim($(this).val()); ...perform search based operation }); 我遇到的问题是,当快速输入时,使用.val()检索的最新值并不总是最新的。例如,将search变量的值记录到控制台并搜索“jquery”时;这是快速输入时记录的内容:

我正在根据键入文本框的输入以以下方式执行一些筛选操作:

$("#search").on('change keyup', function () {
    var search = $.trim($(this).val());
    ...perform search based operation
});
我遇到的问题是,当快速输入时,使用
.val()
检索的最新值并不总是最新的。例如,将search变量的值记录到控制台并搜索“jquery”时;这是快速输入时记录的内容:

日志:j
日志:j
日志:j
日志:j
日志:j
日志:j

减慢击键速度可获得正确的结果:

日志:j
日志:jq
日志:jqu
日志:jque
日志:jquery
日志:jquery

当我从上的
.on中删除基于搜索的操作并只记录击键时,所有记录都正确。我相信这可能是某种时间问题,但不确定这是否是我所不知道的事情。我正在对IE9/jQuery1.9.1运行这个。错误值的原因可能是什么

更新: 小提琴:


我建议使用
keydown
而不是
keydup

释放钥匙时会触发Keyup。似乎当您键入fast或按住一个键时,keyup事件不会触发,直到没有更多的键被按住


如果您不想在每次按键时触发该功能,您可以实施一个短暂的延迟或自上次按键检查以来经过的时间,以查看是否要执行搜索。

我建议使用
keydown
而不是
keyup

释放钥匙时会触发Keyup。似乎当您键入fast或按住一个键时,keyup事件不会触发,直到没有更多的键被按住


如果您不想在每次按键时触发该函数,您可以实施一个短暂的延迟或自上次击键检查以来经过的时间,以查看是否执行搜索。

我仍然存在相同的问题,仅捕获keyup事件。请在此处尝试。尝试启用('input Property Change')
@Zenith,我让OP更改并生成问题时,此选项处于打开状态。我仍然存在相同的问题,仅捕获keyup事件。请在此处尝试。在('input Property change')上尝试
@Zenith,我让OP更改并生成问题时,此选项处于打开状态。我也在小提琴中尝试了此选项。同样的事情也发生在键盘上。我也在小提琴上试过。同样的事情发生在keydown上。