Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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_Web Services_Autocomplete_Jquery Autocomplete - Fatal编程技术网

Javascript 自动完成改进

Javascript 自动完成改进,javascript,jquery,web-services,autocomplete,jquery-autocomplete,Javascript,Jquery,Web Services,Autocomplete,Jquery Autocomplete,我想为Textbox Autocomplete实现一个功能。目前我正在使用jqueryautocomplete,但我无法实现与搜索延迟相关的功能;例如,如果我搜索“New”,我将有一个自动完成列表,其中有['New York','New South Memphis'…] 现在,如果我按下“S”键并立即按下向下箭头,那么我最终会选择第一个项目,即“纽约”,而不是得到以“新S”开头的城市的结果。[触发以“新S”开头的搜索城市的Web服务调用] 我想要实现的是阻止向下箭头,直到检索到结果。若有人能解释

我想为Textbox Autocomplete实现一个功能。目前我正在使用jqueryautocomplete,但我无法实现与搜索延迟相关的功能;例如,如果我搜索“New”,我将有一个自动完成列表,其中有['New York','New South Memphis'…] 现在,如果我按下“S”键并立即按下向下箭头,那么我最终会选择第一个项目,即“纽约”,而不是得到以“新S”开头的城市的结果。[触发以“新S”开头的搜索城市的Web服务调用] 我想要实现的是阻止向下箭头,直到检索到结果。若有人能解释我应该关注什么来实现这个特性,或者是由于Web服务调用的异步性质,这是不可能的

$(文档).ready(函数(){
$(“#位置”).keydown(函数(){
var关键字=$(“#位置”).val();
var url='1〕http://autocomplete.wunderground.com/aq?format=json&cb=myCallbackFn&query=“+关键字;
$.ajax({
键入:“GET”,
url:url,
async:true,
数据类型:“jsonp”,
错误:函数(e){
控制台日志(e.message);
}
});
});
});
var myCallbackFn=函数(数据){
var cities=[];
对于(i=0;i

.固定高度{
填充:1px;
最大高度:200px;
溢出:自动;
}
自动完成:

完成此操作的一种方法是,在启动新的建议GET请求时删除所有自动完成建议,或者设置一个标志以忽略向下箭头键,直到请求得到解决。

您是否可以尝试将其添加到keydown事件侦听器$(“#位置”)的第一行。自动完成(“销毁”);我是否有可能使用承诺等待请求得到解决?是的,这就是承诺的目的。