element autocomplete

本文介绍如何使用 Vue 和 Element UI 实现一个带有动态搜索功能的自动完成输入框,通过`v-model`双向数据绑定和`fetch-suggestions`获取数据,以及`handleSelect`处理选中事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<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')

 

Element UI 中的 el-autocomplete 是一个自动完成输入框组件,可以帮助用户输入并从预设的选项中选择。 要使用 el-autocomplete 组件,首先需要引入 Element UI 的样式和 JavaScript 文件。然后在您的 Vue 组件中使用 el-autocomplete 组件即可。 以下是一个简单的示例代码,展示如何使用 Element UI 的 el-autocomplete 组件: ```html <template> <div> <el-autocomplete v-model="selectedValue" :fetch-suggestions="querySearch" placeholder="请输入内容" @select="handleSelect" ></el-autocomplete> </div> </template> <script> export default { data() { return { selectedValue: '', options: ['选项1', '选项2', '选项3', '选项4'] }; }, methods: { querySearch(queryString, cb) { const results = queryString ? this.options.filter(option => option.includes(queryString)) : this.options; // 模拟异步请求,可以根据实际情况进行调整 setTimeout(() => { cb(results); }, 200); }, handleSelect(value) { console.log('Selected value:', value); } } }; </script> ``` 在上面的代码中,我们通过 `v-model` 指令将用户选择的值绑定到 `selectedValue` 变量上。通过 `fetch-suggestions` 属性指定一个函数来获取匹配的选项列表,这里我们使用 `querySearch` 方法来实现自定义的搜索逻辑。`placeholder` 属性用于设置输入框的提示文本。通过 `@select` 事件监听选择事件,并在 `handleSelect` 方法中处理选择事件。 以上是一个基本的使用示例,您可以根据自己的需求进行定制和扩展。希望能对您有所帮助!如果您还有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值