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 相关文章推荐
[Web]防止用户复制页面内容和另存页面的方法
Feb 06 Javascript
一些常用的JS功能函数(2009-06-04更新)
Jun 04 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
Dec 29 Javascript
jQuery实现鼠标经过图片预览大图效果
Apr 10 Javascript
JavaScript实现上下浮动的窗口效果代码
Oct 12 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
Dec 03 Javascript
json的使用小结
Jun 08 Javascript
jQuery实现的简单前端搜索功能示例
Oct 28 jQuery
详解PHP后期静态绑定分析与应用
Mar 21 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
Apr 05 Javascript
通过angular CDK实现页面元素拖放的步骤详解
Jul 01 Javascript
javascript实现简单留言板案例
Feb 09 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
用php守护另一个php进程的例子
2015/02/13 PHP
浅谈本地WAMP环境的搭建
2015/05/13 PHP
PHP 实现的将图片转换为TXT
2015/10/21 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
2017/06/11 PHP
laravel migrate初学常见错误的解决方法
2017/10/11 PHP
thinkphp5框架扩展redis类方法示例
2019/05/06 PHP
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
jQuery级联操作绑定事件实例
2014/09/02 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
解析预加载显示图片艺术
2016/12/05 Javascript
基于jQuery实现咖啡订单管理简单应用
2017/02/10 Javascript
js脚本编写简单刷票投票系统
2017/06/27 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
webstorm和.vue中es6语法报错的解决方法
2018/05/08 Javascript
JS实现自定义弹窗功能
2018/08/08 Javascript
jsonp跨域及实现百度首页联想功能的方法
2018/08/30 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
ES6字符串的扩展实例
2020/12/21 Javascript
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
用Django写天气预报查询网站
2018/10/21 Python
python反编译学习之字节码详解
2019/05/19 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
详解python中docx库的安装过程
2019/11/08 Python
浅析Python迭代器的高级用法
2020/07/16 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
2020/09/21 Python
python判断元素是否存在的实例方法
2020/09/24 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
幼儿园教师教学反思
2014/02/06 职场文书
实习指导老师评语
2014/04/26 职场文书
表扬通报怎么写
2015/01/16 职场文书
培训通知
2015/04/17 职场文书
政工师工作总结2015
2015/05/26 职场文书
天气温馨提示语
2015/07/14 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python
JavaScript的function函数详细介绍
2021/11/20 Javascript