【问题标题】:autocomplete issue, does not open if same search term - jquery ui autocomplete自动完成问题,如果搜索词相同,则不会打开 - jquery ui autocomplete
【发布时间】:2013-01-27 22:44:55
【问题描述】:

jquery 做的自动补全似乎有一个很小的问题,但令人不安,

随着时间的推移,我已经在许多输入字段中实现了它,但我总是觉得以下问题很烦人:

如果你在上面搜索一个词,说“书”,然后它会很好地打开显示在 li 中呈现的书,好吧,但是现在如果你快速让 control + a 全选,然后 control + x 剪切,然后 control + v 粘贴,你会注意到发生了什么,自动完成只是没有打开。

它似乎不会搜索输入的术语是否相同,这是一个好的机制,可以按下与该术语不同的其他键,就像 ctrl 键一样,或者如果您要模糊自动完成和再次聚焦,您也不一定需要它来搜索,但是如果您删除字符(术语)然后重新输入完​​全相同的字符,我主要通过执行 ctrl + a、ctrl + x、ctrl 来尝试+ v 组合键,然后自动完成保持关闭状态。

这似乎有点尴尬,我想知道如果搜索词仍然与上次搜索的内容相同,要更改什么以使其“打开”。

感谢任何对此有解决方案的人。

【问题讨论】:

  • 将自动完成包装在文本输入更改函数 $('.input').change(..)
  • 是的,似乎可行,$(document).on('change','.ui-autocomplete-input',function(){ $(this).autocomplete('search',$(this).val()); });
  • 好的,赶紧把它作为答案! ;)
  • 为什么你认为按 Ctrl+a 然后 Ctrl-x 再次剪切和粘贴应该会触发文本字段上的更改事件。正如其定义所说,自动完成是为了帮助完成。
  • 这样你就可以选择一些东西了我真正在寻找的搜索词,然后粘贴,哎呀,没有结果,所以如果你不知道你必须删除你输入的最后一个字符并重新输入或等待没有一个字符的字符串的结果,那么你'迷路了,这就是为什么

标签: javascript jquery jquery-ui autocomplete


【解决方案1】:

这可以处理粘贴而不需要模糊。

$(document).on('input propertychange',
               '.ui-autocomplete-input',
                function() { 
                 $(this).autocomplete('search',$(this).val()); 
                });

【讨论】:

    【解决方案2】:

    你可以使用

        $(document).on('change',
                       '.ui-autocomplete-input',
                       function(){
                       $(this).autocomplete('search',$(this).val()); 
                       });
    

    【讨论】:

    • @charlietfl 触发太快,change 会评估是否有变化,无论如何!!!在文本字段的情况下,它会在粘贴文本时触发..但那只是当你离开焦点时。这是一份简单的礼物jsfiddle.net/D77nV
    • 就像我说的...你必须从字段中模糊才能更改为触发...不会仅通过粘贴触发
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 2023-03-05
    • 2011-11-16
    相关资源
    最近更新 更多