带有别名的 jQuery UI 自动完成

时间:2021-02-25 13:34:49

标签: jquery jquery-ui autocomplete jquery-ui-autocomplete

我在表单中使用 jQuery UI 自动完成功能,一切正常(感谢社区)。 只剩下一件事可以使它完美……别名。

自动完成字段供用户输入他的国家/地区。一种自动完成选项是“美利坚合众国”。如果用户输入首字母缩略词“USA”,我该怎么做,自动完成程序将其与“美国”值相关联?

换句话说,当我定义列表中的国家/地区(国家/地区变量)时,有没有办法创建别名? 列表:

var countries = [
  "United States of America",
  "United Kingdom",
  // ...
]

非常感谢任何帮助,谢谢

1 个答案:

答案 0 :(得分:0)

带有别名的解决方案..

var tags = ["United States of America", "United Kingdom", "South Africa", "Albany"];
var alias = ["usa", "uk", "sa", "youpi"];
$("#autocomplete").autocomplete({
  source: function(request, response) {
    var ids = alias.indexOf(request.term);

    var matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term), "i");
    response($.grep(tags, function(item, i) {
      if(ids == i) return true;
      return matcher.test(item);
    }));    
  }
});
<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <title>autocomplete</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.12.4.js"></script>
  <script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>

<body>

  <label for="autocomplete">Select Something </label>
  <input id="autocomplete">


</body>

</html>

这是一个想法,在你轻松地调整代码之后,按照你想要的去做