jQuery UI 自动完成与类似 Chrome 的自动填充

Posted

技术标签:

【中文标题】jQuery UI 自动完成与类似 Chrome 的自动填充【英文标题】:jQuery UI Autocomplete with Chrome-like autofill 【发布时间】:2010-08-22 01:51:27 【问题描述】:

我正在使用 jQuery UI 自动完成功能,虽然我找到了实现自动填充功能的方法,但我一直在寻找类似 Google Chrome 地址栏中的功能。其中最匹配的项目会自动填充,但不会中断您的输入。

感谢任何帮助。

【问题讨论】:

【参考方案1】:

我建议您查看较旧的 jQuery 自动完成插件,该插件内置了此选项。语法类似,但不是将源作为选项,而是将其初始化为第一个参数,语法如下:

$('input.autocomplete').autocomplete(data, autoFill: true);

data 必须是结果数组,或者是指向生成它的服务器端脚本的 url。有关更多信息,请参阅其文档:http://docs.jquery.com/Plugins/Autocomplete


但请注意,此插件的作者认为它已过时,而 jQuery UI 自动完成功能将成为它的继任者。在“如何迁移”的帖子中,他现在向用户指出,没有 autofill 选项的理性 jQuery UI 得到了解释:

autoFill:没有立即消失 可更换,永远 原因:默认行为时 现在通过键盘选择项目 输入的焦点值, 就像 Firefox Awesomebar 一样。 它与自动填充的不同 选项有,但应该没有 需要重新创建这种效果。

【讨论】:

这里是原始“过时”插件的更新版本的链接:github.com/dyve/jquery-autocomplete【参考方案2】:
$('#FELD').autocomplete( 
      source: "ajax/manager.json.php",
      minLength: 0, 
      change: function(event, ui) 
          found = false;
            $(".ui-autocomplete li").each(function(n, element)
              var retval = $(element).text().toUpperCase();
              var retval2 = $($(this).data()).attr('item.autocomplete');
              if ((found == false ) &&(retval == $("#FELD").val().toUpperCase()) )
              
                $("#FELD").val(retval);
                $("#FELDID").val(retval2.id);
                found = true;
              
            );
          if ( found == false)  $("#FELDID").val("-1"); 
      
  ); `enter code here`

【讨论】:

以上是关于jQuery UI 自动完成与类似 Chrome 的自动填充的主要内容,如果未能解决你的问题,请参考以下文章

如何实现类似于 jQuery UI 自动完成的 Dojo 自动完成?

jQuery UI 自动完成功能在 iOS 中不起作用

在 jQuery UI 自动完成中使用 HTML

每个单词下方的jQuery-ui自动完成下拉菜单

jQuery UI 自动完成 - 输入与结果集不匹配时不显示结果

带有从 Rails 生成的 JSON 数据源的 jQuery UI 自动完成 - 不工作