AutoComplete 自动完成

输入框自动完成功能。

何时使用

需要自动完成时。

代码演示

基本

基本使用。

  1. <template>
  2. <div>
  3. <v-auto-complete :data="options" @select="select" @search="search" style="width:200px;"></v-auto-complete>
  4. </div>
  5. </template>
  6. <script>
  7. export default {
  8. data: ()=> ({
  9. options: [],
  10. }),
  11. methods: {
  12. search(val) {
  13. this.options = [{
  14. value: value,
  15. label: value
  16. }, {
  17. value: value + value,
  18. label: value + value
  19. }, {
  20. value: value + value + value,
  21. label: value + value + value
  22. }];
  23. },
  24. select(value) {
  25. console.log('select value', value)
  26. }
  27. }
  28. }
  29. </script>

自定义选项

通过默认scopedSlot自定义选项显示内容

  1. <template>
  2. <v-auto-complete @search="handelSearch" :data="results" style="width:200px;">
  3. <template slot-scope="{data}">
  4. {{data.label}}-1
  5. </template>
  6. </v-auto-complete>
  7. </template>
  8. <script>
  9. export default {
  10. data: ()=> ({
  11. results: [],
  12. }),
  13. methods: {
  14. handelSearch(value) {
  15. if(!value || value.indexOf('@') >=0 ){
  16. this.results = [];
  17. } else {
  18. this.results = ['gmail.com', '163.com', 'qq.com'].map(domain => ({value: `${value}@${domain}`, label: `${value}@${domain}`}));
  19. }
  20. }
  21. }
  22. }
  23. </script>

不区分大小写

不区分大小写的 AutoComplete

  1. <template>
  2. <v-auto-complete :data="dataSource" :filter="filter" style="width:200px;"></v-auto-complete>
  3. </template>
  4. <script>
  5. export default {
  6. data: ()=> ({
  7. dataSource: [
  8. { value: 'Burns Bay Road', label: 'Burns Bay Road' },
  9. { value: 'Downing Street', label: 'Downing Street' },
  10. { value: 'Wall Street', label: 'Wall Street'},
  11. ],
  12. }),
  13. methods: {
  14. filter(val, item) {
  15. const input = val.toLocaleUpperCase();
  16. return item.value.toUpperCase().indexOf(input) !== -1;
  17. }
  18. }
  19. }
  20. </script>

API

AutoComplete Props

属性说明类型默认值
value指定默认选中的条目string/array-
data自动完成的数据源array[]
placeholder输入框提示string-
filter搜索过滤函数,返回Boolean搜索过滤函数,返回Boolean-

Data Props

属性说明类型默认值
label选项的标签或组名(作为标签时可通过select的label属性修改;作为组名时只支持一级,可通过select的groupLabel属性修改)string-
disabled是否禁用booleanfalse
options分组的数据array-

AutoComplete Events

事件说明参数
search搜索补全项的时候调用value
select被选中时调用,参数为选中项的 value 值value
blurblur事件-
focusfocus事件-