element-ui输入框下拉远程搜索

这篇具有很好参考价值的文章主要介绍了element-ui输入框下拉远程搜索。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实现效果:

可以在你输入的时候出现一个下拉,将你输入的东西与下拉框的内容进行匹配,然后下拉框会显示匹配的内容

element-ui输入框下拉远程搜索

 相关代码:

:fetch-suggestions="querySearchAsync"是定义下拉内容的函数方法,restaurants是下拉框的内容,timeout这个定时器使用来决定多少秒后显示筛选后的内容

<el-autocomplete
   style="width: 100%"
   v-model="form.contacts"
   :fetch-suggestions="querySearchAsync"
   placeholder="请输入联系人"
   @select="handleSelect"
   value-key="contacts"
   >
</el-autocomplete>

  export default {
    data() {
      return {
        restaurants: [],
        timeout:  null
      };
    }
}

queryString是输入的内容,cb是显示下拉的回调,需要记住几点
1.在querySearchAsync中queryString和cb这样的形参最好不要去动,防止参数错误
2.在querySearchAsync中使用 cb(results);,可以将results中的数据进行显示在下拉框中
3.createStateFilter函数是用来匹配下拉与输入内容

  querySearchAsync(queryString, cb) {
        var restaurants = this.restaurants;
        var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;

        clearTimeout(this.timeout);
        this.timeout = setTimeout(() => {
          cb(results);
        }, 3000 * Math.random());
      },
      createStateFilter(queryString) {
        return (state) => {
          return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
        };
      },
      handleSelect(item) {
        console.log(item);
      }
    },
    mounted() {
      this.restaurants = this.loadAll();
    }
  };

后端已经有模糊匹配的时候就不用createStateFilter()来进行判断筛选

直接在querySearchAsync()中调用接口,拿返回值就行

    // 联系人搜索建议
    async querySearchAsync(queryString, cb) {
      const data = {
        contacts: queryString,
      };
      // 触发接口把数据给restaurants
      const { rows } = await DynamicPoint(data);
      this.restaurants = rows;
      let restaurants = this.restaurants;
      let results = restaurants;
      clearTimeout(this.timeout);
      this.timeout = setTimeout(() => {
        cb(results);
      }, 300);
    },
    // 点击选中建议项时触发
    handleSelect(item) {
      this.$set(this.form, "contacts", item.contacts);
    },

使用过程中遇到的问题:

1. 如果使用value之外的键名来作为显示的内容,筛选功能就无法实现

2.result中的内容即下拉框的内容中value的值是显示的内容,如果不想使用value的值作为显示的内容,可以在标签中指定value-key来指定在result数组中的键名来进行显示。

 遇到更新....文章来源地址https://www.toymoban.com/news/detail-454796.html

到了这里,关于element-ui输入框下拉远程搜索的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用element-ui el-select 做下拉 全选+搜索 功能

    使用element-ui el-select 做下拉 全选+搜索 功能 有时候,需要用到下拉列表 全选和搜索,并且鼠标放入的时候有下拉列表展示。以前的做法是 check + el-input搜索结合做个组件,现在这个方法直接使用el-select 就能做到这个需求功能:有搜索+有全选+有取消+有确认请求+有鼠标移入自

    2024年02月11日
    浏览(42)
  • element-ui 表单中,下拉框选中某个值后,同步更新其他输入框的值

    设置选择后的@change事件 参考链接: https://www.cnblogs.com/zhangxue521/p/14518175.html

    2024年02月16日
    浏览(34)
  • vue+element-ui 实现下拉框滚动加载

    该功能是由 自定义滚动指令 结合下拉框 :remote-method 远程搜索 实现的 开启远程搜索 参考官方文档 绑定自定义指令 v-el-select-loadmore=“loadmore”

    2024年02月14日
    浏览(44)
  • 【vue组件】使用element-ui 实现三级联动下拉选择

    实现的思路是第一个下拉选择在选择了选项后将该选项的信息传递到接口请求下一个选项的内容,依次类推 然后在清除了上一级选择的选项后要将其次级和子孙级的选项都清除(包括选择里的列表内容) 下面看具体代码: 效果图:

    2024年02月11日
    浏览(45)
  • element-ui在下拉选项框中添加一个按钮,实现子选项的添加

    父组件 子组件

    2024年03月14日
    浏览(38)
  • Vue使用Element-UI实现分页效果

    分页在展示数据列表的场景肯定是非常多的。 一般的项目开发中,数据量特别大,一般都是后端接口直接处理分页返回,前端直接调用即可。 但是前端也是可以不需要借助后端,自己也是可以处理分页的。今天我这个后端开发就站在前端的角度上,处理列表分页。 友情提示

    2024年02月02日
    浏览(37)
  • vue Element-Ui 简单实现输入框密码的显示与隐藏

    element-ui 简单实现密码输入框的显示与隐藏 只需要在输入框代码中添加 show-password ,然后在你输入密码时会自动出现眼睛图标,点击图标就可以显示和隐藏密码。 相关资料: element-ui 图标库: https://element.eleme.cn/#/zh-CN/component/icon

    2024年02月11日
    浏览(56)
  • Element-ui中表格el-table图片预览效果实现(非常实用)

    🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅  文末获取源码联系 🏆先展示效果:   🏆使用的是下面这个插

    2024年02月11日
    浏览(43)
  • Vue 3 + Element UI Plus 实现 Select 下拉框的虚拟滚动效果详解与代码示例

    在 Vue 3 项目中,当下拉框中的选项过多时,使用虚拟滚动可以提升性能和用户体验。本文将介绍如何使用 Vue 3 和 Element UI Plus(el-select-plus)组件实现 Select 下拉框的虚拟滚动效果,并提供详细的代码示例。 首先,确保你已经安装了 Element UI Plus,它是 Element UI 的扩展版本,支

    2024年02月08日
    浏览(39)
  • 【vue2】element-ui el-transfer扩展 实现多列效果一对多

    vue2 el-transfer 穿梭框实现多类别 template 复制Transfer源码中的template,并拓展我们需要的列表2和button script 这里重写了Transfer的addToLeft方法,按着element-ui的逻辑写出第二个列表的逻辑即可。源码就不做解释了,这个组件比较简单,感兴趣的朋友可以去看看 style GitHub地址

    2024年02月08日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包