Jquery自动完成单击外部错误

Jquery自动完成单击外部错误,jquery,jquery-ui,jquery-autocomplete,Jquery,Jquery Ui,Jquery Autocomplete,我在使用Jquery自动完成时面临以下问题: -如果未选择任何内容,我将尝试(并管理)清除文本字段,但如果用户在未选择任何内容的情况下单击外部,然后再次执行相同的请求,则不会发生任何事情 你可以自己试试:(一把不是我的小提琴,但用同样的方式演奏) 例如,尝试键入“per”,然后单击外部,然后再次键入“per”。除非您对请求进行更改,否则自动完成将不起作用 代码如下: $(function () { $("#tags").autocomplete({ source: avai

我在使用Jquery自动完成时面临以下问题: -如果未选择任何内容,我将尝试(并管理)清除文本字段,但如果用户在未选择任何内容的情况下单击外部,然后再次执行相同的请求,则不会发生任何事情

  • 你可以自己试试:(一把不是我的小提琴,但用同样的方式演奏)

  • 例如,尝试键入“per”,然后单击外部,然后再次键入“per”。除非您对请求进行更改,否则自动完成将不起作用
代码如下:

$(function () {
 $("#tags").autocomplete({
     source: availableTags,
     close:function(){
         this.value=''
     },
     select:function(e,ui){
         /* do something with selected result*/
         $('body').append('<div>You Chose '+ui.item.value+'</div>');

     }
 });
$(函数(){
$(“#标记”).autocomplete({
资料来源:availableTags,
关闭:函数(){
this.value=''
},
选择:功能(e、ui){
/*用选定的结果做某事*/
$('body').append('您选择了'+ui.item.value+'');
}
});
}))

欢迎任何意见!
Thx

在选项中设置延迟将消除此“错误”,例如,将其设置为0或100(不建议远程数据设置为0,因为它可能会在服务器上增加额外负载,但对于本例中所示的本地阵列则可以):

$(函数(){
$(“#标记”).autocomplete({
资料来源:availableTags,
延误:100,
关闭:函数(){
this.value=''
},
选择:功能(e、ui){
/*用选定的结果做某事*/
$('body').append('您选择了'+ui.item.value+'');
}
});

我已经尝试过了,这就解决了问题。但只有当用户输入速度足够慢时,才会出现问题。即使键盘输入的延迟设置为100(默认情况下不是300),也可能会出现问题。难道没有一种防弹方法可以正确重置输入并允许更长的延迟吗?(在新搜索中,您可以随心所欲地快速输入)。
$(function () {
 $("#tags").autocomplete({
     source: availableTags,
     delay: 100,
     close:function(){
         this.value=''
     },
     select:function(e,ui){
         /* do something with selected result*/
         $('body').append('<div>You Chose '+ui.item.value+'</div>');

   }
 });