Jquery按键被触发得太早

Jquery按键被触发得太早,jquery,keypress,Jquery,Keypress,我有一个搜索栏。如果我在搜索栏中键入了一些内容,我想将搜索栏的输入与字符串中的名称进行实时比较: 此数组包含单词hundai: allRowsArray[0][1] 这是我的javascript代码: jQuery("#carsearchbar").keypress(function(){ carname = allRowsArray[0][1]; var searchword = jQuery("#carsearchbar").val(); jQuery("#lo

我有一个搜索栏。如果我在搜索栏中键入了一些内容,我想将搜索栏的输入与字符串中的名称进行实时比较:

此数组包含单词hundai: allRowsArray[0][1]

这是我的javascript代码:

   jQuery("#carsearchbar").keypress(function(){
    carname = allRowsArray[0][1];
    var searchword = jQuery("#carsearchbar").val();
    jQuery("#logger").text(carname.startsWith(searchword)+"|"+carname +"|"+searchword+"|"+searchword.length+"");
    });

I type h and it immediately outputs:        true|hundai||0|     
If i type hu it immediately  displays:   true|hundai|h|1|  
正如您所见,在将数字或值添加到输入字段之前,正在执行keypess触发。假设我想在数组中查找单词hundai,我必须键入hundai并在后面加一个空格。或者它只搜索“hunda”而不搜索i


有办法解决这个问题吗?也许会耽搁一下?延迟听起来是不好的形式

使用
keyup
而不是
keypress
,这样您就可以从该元素的
val()
中获取刚才按下的当前字符:

var allRowsArray=[['someName','hundai'];
jQuery(“#carsearchbar”).keyup(函数(){
carname=allRowsArray[0][1];
var searchword=jQuery(“#carsearchbar”).val();
jQuery(“#logger”).text(carname.startsWith(searchword)+“|”+carname+“|”+searchword+“|”+searchword.length+”);
});


什么是
foodname
?很抱歉忘了更改它。请提供一个实例。@user2322791现在明白了。答案很简单。我真是个白痴。我本可以亲自检查的。谢谢你的帮助:)