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 相关文章推荐
Javascript 模式实例 观察者模式
Oct 24 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
Mar 31 Javascript
nullJavascript中创建对象的五种方法实例
May 07 Javascript
深入理解javascript中return的作用
Dec 30 Javascript
JS设置获取cookies的方法
Jan 26 Javascript
js写的方法实现上传图片之后查看大图
Mar 05 Javascript
jQuery实现带有洗牌效果的动画分页实例
Aug 31 Javascript
javascript实现日期时间动态显示示例代码
Sep 08 Javascript
JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)
Jul 07 Javascript
p5.js入门教程之键盘交互
Mar 19 Javascript
Vue 动态添加路由及生成菜单的方法示例
Jun 20 Javascript
javascript开发实现贪吃蛇游戏
Jul 31 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
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
PHP操作MongoDB GridFS 存储文件的详解
2013/06/20 PHP
PHP中使用SimpleXML检查XML文件结构实例
2015/01/07 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
bootstrap表格分页实例讲解
2016/12/30 Javascript
详解使用vscode+es6写nodejs服务端调试配置
2017/09/21 NodeJs
vue-cli3+typescript初体验小结
2019/02/28 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
跟老齐学Python之传说中的函数编写条规
2014/10/11 Python
python使用nntp读取新闻组内容的方法
2015/05/08 Python
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
python自定义异常实例详解
2017/07/11 Python
Python简单读取json文件功能示例
2017/11/30 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
python分布式计算dispy的使用详解
2019/12/22 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
抽象方法、抽象类怎样声明
2014/10/25 面试题
自我评价是什么
2014/01/04 职场文书
青年文明号创建承诺
2014/03/31 职场文书
总经理任命书范本
2014/06/05 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
后备干部推荐材料
2014/12/24 职场文书
2015年征兵工作总结
2015/07/23 职场文书
《比的意义》教学反思
2016/02/18 职场文书
企业管理不到位检讨书
2019/06/27 职场文书
浅谈react useEffect闭包的坑
2021/06/08 Javascript
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python
Mysql binlog日志文件过大的解决
2021/10/05 MySQL
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫
Vue深入理解插槽slot的使用
2022/08/05 Vue.js