# 自动完成/Autocomplete
创建允许在输入时从预生成列表中进行选值的输入框。
## 用法
要使用这个组件,需要添加 `.uk-autocomplete` 类到一个包含 `input` 元素的 `<div>` 中。为了使自动完成输入框所需要的JavaScript生效,你还需要添加 `data-uk-autocomplete` 属性。添加 `{source:'PATH/TO/RESULTS'}` 到data属性中,并设置需要用JSON进行格式化的自动完成列表的路径 ([示例](../tests/components/_autocomplete.json))。 [下拉菜单](dropdown.html)会被注入需要显示出来的自动完成建议。你甚至可以用键盘上的上下键来浏览下拉菜单。
注意 使用此组件需要额外添加 `autocomplete.css` 文件,在`css/components`文件夹中。此组件需要额外添加 `autocomplete.js` 文件,在`js/components`文件夹中。
### Example
![](https://box.kancloud.cn/2016-05-12_57346f3d5e514.jpg)
提示 尝试输入这些词语: Hamburg, New York, Moscow or Amsterdam.
### Markup
```
<div class="uk-autocomplete uk-form" data-uk-autocomplete="{source:'my-autocomplete.json'}">
<input type="text">
</div>
```
* * *
## 自定义模板
你还可以通过创建自定义模板使结果以不同的形式显示出来。
### Example
![](https://box.kancloud.cn/2016-05-12_57346f3d6f373.jpg)
### Markup
```
<div class="uk-autocomplete uk-form" data-uk-autocomplete="{source:'my-autocomplete.json'}">
<input type="text">
<script type="text/autocomplete">
<ul class="uk-nav uk-nav-autocomplete uk-autocomplete-results">
{{~items}}
<li data-value="{{ $item.value }}">
<a>
{{ $item.title }}
<div>{{{ $item.text }}}</div>
</a>
</li>
{{/items}}
</ul>
</script>
</div>
```
## JavaScript 选项
| 选项 | 可用值 | 默认值 | 描述 |
| --- | --- | --- | --- |
| `source` | url, array, callback function | [] | 数据源 |
| `minLength` | integer | 3 | 触发自动完成的最小输入长度 |
| `param` | string | search | 发送ajax请求时的查询名称(Query name) |
| `delay` | integer | 300 | 停止输入后的延时 |
| `flipDropdown` | boolean | false | 翻转显示结果的下拉菜单 |
### 手动初始化
```
var autocomplete = UIkit.autocomplete(element, { /* options */ });
```
### 事件
| 名称 | 参数 | 描述 |
| --- | --- | --- |
| `selectitem.uk.autocomplete` | event, data, acobject | 某个值被选择时触发 |
| `show.uk.autocomplete` | event | 自动完成下拉菜单显示时触发 |
- UIkit 中文文档
- 开始使用
- 初学者
- 开始使用
- 如何自定义
- 布局示例
- 开发者
- 项目结构
- Less & Sass 文件
- 创建主题
- 创建样式
- Customizer.json
- JavaScript
- 自定义前缀
- 核心组件
- 默认
- 基础
- 打印
- 布局类组件
- 网格
- 面板/Panel
- 块/Block
- 文章
- 评论/Comment
- 效果/Utility
- Flex 布局
- 覆盖/Cover
- 导航类组件
- 导航菜单
- 导航栏
- 二级导航
- 面包屑/Breadcrumb
- 分页
- 选项卡
- 缩略图导航/Thumbnav
- 页面元素
- 列表
- 描述列表
- 表格
- 表单
- 常用组件
- 按钮
- 图标
- 关闭/Close
- 徽章/Badge
- 提示框
- 缩略图/Thumbnail
- 遮罩/Overlay
- 文本
- 列
- 动画
- 对比度/Contrast
- JAVASCRIPT组件
- 下拉菜单
- 模态对话框
- 抽屉/Off-canvas
- 切换器/Switcher
- 拨动/toggle
- 滚动监听/Scrollspy
- 平滑滚动
- 附加组件
- 布局类组件
- 动态网格
- 视差网格
- 导航类组件
- 圆点导航
- 滑动导航/Slidenav
- 动态分页
- 常用组件
- 高级表单
- 文件表单/Form file
- 密码表单
- 选择表单
- 占位符
- 进度条/Progress
- JAVASCRIPT组件
- 灯箱/Lightbox
- 自动完成/Autocomplete
- 日期选择器/Datepicker
- HTML 编辑器
- 滚动条/Slider
- 滑块集/Slideset
- 幻灯片/Slideshow
- 视差/Parallax
- 手风琴/Accordion
- 通知/Notify
- 搜索/Search
- 可嵌套/Nestable
- 可排序/Sortable
- 附着/Sticky
- 时间选择器
- 工具提示/Tooltip
- 上传