vue输入框实现自动补全小功能

简单方式

//     输入搜索补全框
  <el-select   filterable  v-model="form[item.name]" :filter-method="dataFilter" placeholder="" >
      <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
   </el-select>
 data() {
      return {
        optionsCopy: [
          {
            value: '0',
            label: '肖战'
          },
          {
          value: '1',
          label: '一搏'
        }, {
          value: '2',
          label: '凡凡'
        }],
       options: [
          {
            value: '0',
            label: '肖战'
          },
          {
          value: '1',
          label: '一搏'
        }, {
          value: '2',
          label: '凡凡'
        }],
        value: ''
      };
    }
  

```bash
   dataFilter(val) {
        this.value = val;
        if (val) { //val存在
          this.options = this.optionsCopy.filter((item) => {
            if (!!~item.label.indexOf(val) || !!~item.label.toUpperCase().indexOf(val.toUpperCase())) {
              return true
            }
          })
        } else { //val为空时,还原数组
          this.options = this.optionsCopy;
        }
      }

简单的自动补全搜索功能就做好了!


### 构建 Vue 邮箱输入框自动补全组件 为了创建一个适用于 Vue 项目的邮箱输入框自动补全组件,可以基于 `vuejs-autocomplete` 组件库来构建[^2]。此方案不仅能够提供基本的自动完成功能,还支持通过远程数据源获取建议列表。 #### 自动补全组件基础结构 首先安装依赖项: ```bash npm install vuejs-autocomplete --save ``` 接着,在项目中引入并配置该插件: ```javascript import Vue from 'vue'; import Autocomplete from 'vuejs-autocomplete'; Vue.use(Autocomplete); ``` 随后定义一个新的组件用于处理电子邮件地址的特殊需求: ```html <template> <div class="email-input"> <!-- 使用 v-model 双向绑定 value --> <autocomplete :search="searchEmails" placeholder="请输入电子邮箱..." aria-label="邮箱输入框" @submit="onSubmit" ref="autocomplete" /> </div> </template> <script> export default { data() { return { emails: [] }; }, methods: { async searchEmails(text) { // 这里可以根据实际业务逻辑调整查询方式 const response = await fetch(`/api/search-email?q=${text}`); this.emails = await response.json(); return this.emails.map(email => ({ label: email, value: email })); }, onSubmit(item) { console.log(`Selected Email: ${item.value}`); } } }; </script> ``` 上述代码片段展示了如何利用现有的 `vuejs-autocomplete` 实现了一个简单的邮件输入框,并且实现了异步加载候选邮箱的功能。 对于更复杂的场景,比如需要过滤本地存储的数据或是结合其他验证规则,则可能还需要进一步扩展这个例子中的方法和属性设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值