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 相关文章推荐
让iframe框架网页在任何浏览器下自动伸缩
Aug 18 Javascript
关于B/S判断浏览器断开的问题讨论
Oct 29 Javascript
jquery each()源代码
Feb 14 Javascript
IE6下拉框图层问题探讨及解决
Jan 03 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
Sep 05 Javascript
如何实现json数据可视化详解
Nov 24 Javascript
基于Vuejs和Element的注册插件的编写方法
Jul 03 Javascript
JavaScript中一些特殊的字符运算
Aug 17 Javascript
webpack分离css单独打包的方法
Jun 12 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
Aug 28 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
Aug 13 Javascript
vue3+typeScript穿梭框的实现示例
Dec 29 Vue.js
基于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
有道搜索和IP138的IP的API接口(PHP应用)
2012/11/29 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
php实现可逆加密的方法
2015/08/11 PHP
PHP对象克隆clone用法示例
2016/09/28 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
基于jquery的3d效果实现代码
2011/03/23 Javascript
js判断游览器类型及版本号的代码
2014/05/11 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
Javascript简单改变表单元素背景的方法
2015/07/15 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
javascript中获取元素标签中间的内容的实现方法
2016/10/08 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
老生常谈js中的MVC
2017/07/25 Javascript
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
vue和webpack安装命令详解
2018/06/15 Javascript
js实现ATM机存取款功能
2020/10/27 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
Python中字符串对齐方法介绍
2015/05/21 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
对numpy数据写入文件的方法讲解
2018/07/09 Python
python实现简单http服务器功能
2018/09/17 Python
PyCharm在新窗口打开项目的方法
2019/01/17 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
python绘制BA无标度网络示例代码
2019/11/21 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
python开发前景如何
2020/06/11 Python
windows支持哪个版本的python
2020/07/03 Python
用css3写出气球样式的示例代码
2017/09/11 HTML / CSS
一份全面的PHP面试问题考卷
2012/07/15 面试题
某公司的.net工程师面试题笔试题
2013/11/22 面试题
局域网定义和特性
2016/01/23 面试题
预备党员转正思想汇报
2014/01/12 职场文书
学术会议主持词
2014/03/17 职场文书
八项规定整改方案
2014/10/01 职场文书
golang中字符串MD5生成方式总结
2021/07/04 Golang