vue 简单自动补全的输入框的示例


Posted in Javascript onMarch 12, 2018

实现一个输入框,输入信息后显示由后台返回的数据,供用户选择,之前用的elm的组件,不过那个有点大。。。简单的情况下自己实现一个也能满足要求。。。应该吧。。。

vue 简单自动补全的输入框的示例

主题包括一个input用于输入,一个div用于展示数据,div里面是数据项item

当在input中按下回车时,会根据信息去后台获取数据,如果用户点击了别的地方,input失去焦点,则提示的div也应该收起来

bug:

在blur事件中,如果直接将isShow设置为false会出问题,先失去焦点,显示面板消失,所以你的点击不会被监听到。。。设置一个计时器,在点击之后10ms后将面板收起来,问题解决。。。

显示div将内容撑开,改变其他组件布局,设置div的属性,即可,高度设为0,z-index很大,就不会改变其他组件位置

height: 0;
z-index: 999;
<template>
 <div class="container">
  <input v-model="msg" @keyup.enter="search" class="msg" @blur="blur"/>
  <div class="select-panel">
   <div v-show="isShow" v-for="w in words" class="select-item" @click="click_item(w)">{{w['content']}}</div>
  </div>
 </div>
</template>

简单实现代码

<template>
 <div class="container">
  <input v-model="msg" @keyup.enter="search" class="msg" @blur="blur"/>
  <div class="select-panel">
   <div v-show="isShow" v-for="w in words" class="select-item" @click="click_item(w)">{{w['content']}}</div>
  </div>
 </div>
</template>

<script>
 import {search_word} from "../api/word-api";

 export default {
  name: "auto-complete",
  data() {
   return {
    msg: '',
    words: [],
    isShow: false
   }
  },
  computed: {},

  methods: {
   blur() {
    setTimeout(() => {
      this.isShow = false
     },
     200)
   },
   async search() {
    console.log('search msg', this.msg)
    this.words = await search_word(this.msg)
    console.log(this.words)
    this.isShow = true
   },
   click_item(w) {
    console.log('click word', w)
    this.$emit('add_word', w)
   }
  },

 }
</script>

<style scoped>

 .container {
  display: flex;
  flex-grow: 0;
  flex-shrink: 0;
  box-sizing: border-box;
 }

 .msg {
  margin: 5px;
 }

 .select-panel {
  height: 0;
  z-index: 999;

 }

 .select-item {
  /*height: 0;*/
  z-index: 999;
  margin: 1px;
  padding: 2px;
  background: #fff;
  opacity: 0.8;
 }
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
require简单实现单页应用程序(SPA)
Jul 12 Javascript
基于js实现二级下拉联动
Dec 17 Javascript
原生js实现放大镜效果
Jan 11 Javascript
layui分页效果实现代码
May 19 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
Jun 01 Javascript
vue自定义一个v-model的实现代码
Jun 21 Javascript
前端axios下载excel文件(二进制)的处理方法
Jul 31 Javascript
微信小程序如何连接Java后台
Aug 08 Javascript
解决layui laydate 时间控件一闪而过的问题
Sep 28 Javascript
Element Input输入框的使用方法
Jul 26 Javascript
微信小程序入门之指南针
Oct 22 Javascript
五句话帮你轻松搞定js原型链
Dec 09 Javascript
webpack打包js的方法
Mar 12 #Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
Mar 12 #Javascript
vue路由懒加载的实现方法
Mar 12 #Javascript
vue移动UI框架滑动加载数据的方法
Mar 12 #Javascript
详解vuex的简单使用
Mar 12 #Javascript
js提取中文拼音首字母的封装工具类
Mar 12 #Javascript
基于express中路由规则及获取请求参数的方法
Mar 12 #Javascript
You might like
德生H-501的评价与改造
2021/03/02 无线电
yii2 上传图片的示例代码
2018/11/02 PHP
php生成短网址/短链接原理和用法实例分析
2020/05/29 PHP
Code:findPosX 和 findPosY
2006/12/20 Javascript
JQuery通过Ajax提交表单并返回结果
2011/07/31 Javascript
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
2012/05/14 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
2013/10/18 Javascript
js 上下左右键控制焦点(示例代码)
2013/12/14 Javascript
深入理解Javascript中this的作用域
2014/08/12 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
2015/08/11 Javascript
JavaScript仿商城实现图片广告轮播实例代码
2016/02/06 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
JavaScript实现反转字符串的方法详解
2017/04/27 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
JavaScript一元正号运算符示例代码
2019/06/30 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
微信小程序获取当前位置和城市名
2019/11/13 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
python基础教程之udp端口扫描
2014/02/10 Python
Python生成随机验证码的两种方法
2015/12/22 Python
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
Python调用ctypes使用C函数printf的方法
2017/08/23 Python
Python 实现引用其他.py文件中的类和类的方法
2018/04/29 Python
如何用Matplotlib 画三维图的示例代码
2020/07/28 Python
序列化Python对象的方法
2020/08/01 Python
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
2014/07/27 面试题
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
大门门卫岗位职责
2013/11/30 职场文书
幼儿教师研修感言
2014/02/12 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
琅琊山导游词
2015/02/05 职场文书
幼师辞职信范文大全
2015/05/12 职场文书
家庭聚会祝酒词
2015/08/11 职场文书