element autocomplete

本文介绍如何使用 Vue 和 Element UI 实现一个带有动态搜索功能的自动完成输入框,通过`v-model`双向数据绑定和`fetch-suggestions`获取数据,以及`handleSelect`处理选中事件。
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.15.0/lib/index.js"></script>
<div id="app">
    <el-autocomplete
      class="inline-input"
      v-model="selectedItem.value"
      :fetch-suggestions="querySearch"
      placeholder="请输入内容"
      @select="handleSelect"
    ></el-autocomplete>
</div>
const listOptions =  [{ "value": "测试1", "id": "1" },
          { "value": "测试2", "id": "2" },
          { "value": "测试3", "id": "3" }]; 

var Main = {
    data() {
      return {
        list: listOptions,
        selectedItem: { "value": "测试2", "id": "2" },
      };
    },
    methods: {
      querySearch(queryString, cb) {
        var list = this.list;
        var results = queryString ? list.filter(this.createFilter(queryString)) : list;
        // 调用 callback 返回建议列表的数据
        cb(results);
      },
      createFilter(queryString) {
        return (list) => {
          return (list.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
        };
      },
      handleSelect(item) {
        alert(JSON.stringify(item));
      }
    },
    mounted() {
      
    }
  }
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')

 

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值