【问题标题】:Jquery autocomplete click outside bugJquery自动完成点击外部错误
【发布时间】:2014-04-22 21:36:39
【问题描述】:

我在使用 Jquery 自动完成时遇到以下问题: - 如果未选择任何内容,我正在尝试(并管理)清除文本字段,但如果用户在未选择任何内容的情况下单击外部然后再次执行相同的请求,则没有任何反应

  • 您可以自己尝试一下:(不是我的小提琴,但窃听方式相同)

http://jsfiddle.net/ZcHgY/

  • 例如尝试键入“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>');

     }
 });

});

欢迎任何想法! 谢谢

【问题讨论】:

    标签: jquery jquery-ui jquery-autocomplete


    【解决方案1】:

    在选项中设置延迟将消除此“错误”,例如设置为 0 或 100(不建议将 0 用于远程数据,因为它会给您的服务器带来过多的负载,但对于示例中的本地阵列来说很好):

    http://jsfiddle.net/ZcHgY/22/

    $(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>');
    
       }
     });
    

    【讨论】:

    • 我已经尝试过了,这正在解决问题。但前提是用户输入速度足够慢。即使将延迟设置为 100(而不是默认情况下的 300)并使用键盘输入,也可能会出现问题。没有一种防弹方法可以正确重置输入并允许更长的延迟吗? (在新搜索中,您可以快速输入)。
    猜你喜欢
    • 2012-01-18
    • 2012-06-29
    • 2011-11-16
    • 1970-01-01
    • 2017-08-14
    • 2013-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多