我在表单中使用 jQuery UI 自动完成功能,一切正常(感谢社区)。 只剩下一件事可以使它完美……别名。
自动完成字段供用户输入他的国家/地区。一种自动完成选项是“美利坚合众国”。如果用户输入首字母缩略词“USA”,我该怎么做,自动完成程序将其与“美国”值相关联?
换句话说,当我定义列表中的国家/地区(国家/地区变量)时,有没有办法创建别名? 列表:
var countries = [
"United States of America",
"United Kingdom",
// ...
]
非常感谢任何帮助,谢谢
答案 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>
这是一个想法,在你轻松地调整代码之后,按照你想要的去做