Jquery 过早触发按键
Jquery key press is being fired too early
我有一个搜索栏。如果我在该搜索栏中键入内容,我想实时比较搜索栏的输入与我的字符串中的名称:
此数组包含单词 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|
如您所见,在将数字或值添加到输入字段之前正在执行按键触发。所以假设我想在我的数组中寻找单词 hundai 我必须输入 hundai 和它后面的 space 。或者它只会搜索没有 i 的 "hunda"。
有办法解决这个问题吗?也许延迟?延迟听起来很糟糕。
使用 keyup
而不是 keypress
,这样您就可以从该元素的 val()
中获取您刚刚按下的当前字符:
var allRowsArray = [['someName','hundai']];
jQuery("#carsearchbar").keyup(function(){
carname = allRowsArray[0][1];
var searchword = jQuery("#carsearchbar").val();
jQuery("#logger").text(carname.startsWith(searchword)+"|"+carname +"|"+searchword+"|"+searchword.length+"");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id='carsearchbar' type-'text' />
<span id='logger'></span>
我有一个搜索栏。如果我在该搜索栏中键入内容,我想实时比较搜索栏的输入与我的字符串中的名称:
此数组包含单词 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|
如您所见,在将数字或值添加到输入字段之前正在执行按键触发。所以假设我想在我的数组中寻找单词 hundai 我必须输入 hundai 和它后面的 space 。或者它只会搜索没有 i 的 "hunda"。
有办法解决这个问题吗?也许延迟?延迟听起来很糟糕。
使用 keyup
而不是 keypress
,这样您就可以从该元素的 val()
中获取您刚刚按下的当前字符:
var allRowsArray = [['someName','hundai']];
jQuery("#carsearchbar").keyup(function(){
carname = allRowsArray[0][1];
var searchword = jQuery("#carsearchbar").val();
jQuery("#logger").text(carname.startsWith(searchword)+"|"+carname +"|"+searchword+"|"+searchword.length+"");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id='carsearchbar' type-'text' />
<span id='logger'></span>