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 相关文章推荐
javascript 必知必会之closure
Sep 21 Javascript
JavaScript 动态添加表格行 使用模板、标记
Oct 24 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
Jan 01 Javascript
js 分页全选或反选标识实现代码
Aug 09 Javascript
jQuery.extend 函数详解
Feb 03 Javascript
javascript简易缓动插件(源码打包)
Feb 16 Javascript
jquery数组之存放checkbox全选值示例代码
Dec 20 Javascript
详解AngularJS中的表达式使用
Jun 16 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
Jun 24 Javascript
JavaScript类型系统之布尔Boolean类型详解
Jun 26 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
Jan 08 Javascript
JavaScript 链表定义与使用方法示例
Apr 28 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
Terran兵种对照表
2020/03/14 星际争霸
在WordPress中获取数据库字段内容和添加主题设置菜单
2016/01/11 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
jQuery validate 中文API 附validate.js中文api手册
2010/07/31 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
JavaScript运动框架 多值运动(四)
2017/05/18 Javascript
AngularJs 延时器、计时器实例代码
2017/09/16 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
2019/07/10 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
[00:10]DOTA2 TI9勇士令状明日上线
2019/05/07 DOTA
Python XML RPC服务器端和客户端实例
2014/11/22 Python
Python open()文件处理使用介绍
2014/11/30 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
Python绘制股票移动均线的实例
2019/08/24 Python
python实现最大优先队列
2019/08/29 Python
pytorch下大型数据集(大型图片)的导入方式
2020/01/08 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
python代码如何注释
2020/06/01 Python
解决tensorflow 释放图,删除变量问题
2020/06/23 Python
深入了解Python 变量作用域
2020/07/24 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
python里反向传播算法详解
2020/11/22 Python
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
日本卡普空电视游戏软件公司官方购物网站:e-CAPCOM
2018/07/17 全球购物
英国手机零售商:Metrofone
2019/03/18 全球购物
介绍一下RMI的基本概念
2016/12/17 面试题
美术教学感言
2014/02/22 职场文书
教师节倡议书
2014/08/30 职场文书
生产工厂门卫岗位职责
2014/09/26 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
特岗教师个人总结
2015/02/10 职场文书
创业计划书之珠宝饰品
2019/08/26 职场文书