Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)


Posted in Javascript onOctober 25, 2019

官网的demo献上

在elementui Input输入框中可以找到远程搜索组件,获取服务端的数据

Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)

官网中的数据list都是写在loadAll()中的,而如果我们此时要用到mock的数据就要在此基础上对代码进行修改。

-mock数据的获取-

我们要获取远程mock中所有学生的学号信息,根据输入的数据来远程查找目标,并且在选中该目标后能够自动填充对应的姓名、生日、手机等信息,实现快速获取信息的功能,再也不用手动一个个去输入所有的数据啦~

在template中添加el-autocomplete

<el-autocomplete 
 placeholder="请输入studentID"
 v-model="form.studentID" 
 :fetch-suggestions="querySearchAsync" 
 @select="handleSelect" 
>
</el-autocomplete>

在script中添加以下函数

//queryString 为在框中输入的值
//cb 回调函数,将处理好的数据推回
querySearchAsync(queryString, cb) {
 var studentBasic = this.studentBasic;
 console.log(studentBasic)
 var results = queryString ? studentBasic.filter(this.createStateFilter(queryString)) : studentBasic;
 console.log('results '+results)
 clearTimeout(this.timeout);
 this.timeout = setTimeout(() => {
  cb(results);
 }, 0.5*1000);
 },
//根据输入的字段进行筛选
createStateFilter(queryString) {
 return (state) => {
 return (state.value.toString().toLowerCase().indexOf(queryString.toLowerCase()) === 0);
 };
 },

//将其他数据自动补全,采用覆盖的方法
handleSelect(item){
 this.form.name = item.name;
 this.form.studentID = item.value;
 this.form.birth = item.birthday;
 this.form.region = item.city;
 this.form.phone = item.phone;
 }

选中目标学号以后自动补全其他mock的数据

Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)-

-踩坑点之value字段-

看了网上很多demo都说后台获取的数据对象必须有value关键字,因为autocomplete只识别value字段,这里有一个实现的小trick:

this.studentBasic= JSON.parse(JSON.stringify(this.list).replace(/studentID/g,"value"));

JSON.stringify() 方法是将一个JavaScript值(对象或者数组)转换为一个 JSON字符串,如果指定了replacer是一个函数,则可以替换值,或者如果指定了replacer是一个数组,可选的仅包括指定的属性。这样我们就可以把自己的属性都替换成value字段啦~cool

总结

以上所述是小编给大家介绍的Vue el-autocomplete远程搜索下拉框并实现自动填充功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
js 页面传参数时 参数值含特殊字符的问题
Dec 13 Javascript
Jquery 的outerHeight方法使用介绍
Sep 11 Javascript
最好用的省市二级联动 原生js实现你值得拥有
Sep 22 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
Nov 25 Javascript
jQuery带箭头提示框tooltips插件集锦
Nov 17 Javascript
JQuery中的事件及动画用法实例
Jan 26 Javascript
javascript 数组的正态分布排序的问题
Jul 31 Javascript
PHP获取当前页面完整URL的方法
Dec 02 Javascript
JavaScript中清空数组的三种方式
Mar 22 Javascript
JS中Promise函数then的奥秘探究
Jul 30 Javascript
详解如何在Vue里建立长按指令
Aug 20 Javascript
解决layui 三级联动下拉框更新时回显的问题
Sep 03 Javascript
基于Vue el-autocomplete 实现类似百度搜索框功能
Oct 25 #Javascript
vue实现评论列表功能
Oct 25 #Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
Oct 25 #Javascript
浅谈layui 表单元素的选中问题
Oct 25 #Javascript
layUI的验证码功能及校验实例
Oct 25 #Javascript
layui点击按钮页面会自动刷新的解决方案
Oct 25 #Javascript
详解node登录接口之密码错误限制次数(含代码)
Oct 25 #Javascript
You might like
ThinkPHP 框架实现的读取excel导入数据库操作示例
2020/04/14 PHP
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
bootstrap侧边栏圆点导航
2017/01/11 Javascript
Js apply方法详解
2017/02/16 Javascript
MUI 上拉刷新/下拉加载功能实例代码
2017/04/13 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
vue-router路由参数刷新消失的问题解决方法
2017/06/17 Javascript
详解vue-cli与webpack结合如何处理静态资源
2017/09/19 Javascript
十分钟带你快速了解React16新特性
2017/11/10 Javascript
关于axios如何全局注册浅析
2018/01/14 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
微信小程序实现简单跑马灯效果
2020/05/26 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
Vue-cli3多页面配置详解
2020/03/22 Javascript
TensorFlow实现创建分类器
2018/02/06 Python
Python中Proxypool库的安装与配置
2018/10/19 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
2018/12/18 Python
Python中pymysql 模块的使用详解
2019/08/12 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
详解python的super()的作用和原理
2020/10/29 Python
数据库连接池的工作原理
2012/09/26 面试题
ajax是什么及其工作原理
2012/02/08 面试题
《童年的发现》教学反思
2014/02/14 职场文书
学校后勤岗位职责
2014/02/19 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
护理工作个人总结
2015/03/03 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书
个人向公司借款协议书
2016/03/19 职场文书
详解Vue的sync修饰符
2021/05/15 Vue.js
Requests什么的通通爬不了的Python超强反爬虫方案!
2021/05/20 Python
用JS实现飞机大战小游戏
2021/06/09 Javascript
7个关于Python的经典基础案例
2021/11/07 Python