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 相关文章推荐
jQuery 全选效果实现代码
Mar 23 Javascript
JavaScript 自动完成脚本整理(33个)
Oct 20 Javascript
js中return false(阻止)的用法
Aug 14 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
Nov 07 Javascript
多个$(document).ready()的执行顺序实例分析
Jul 26 Javascript
js实现获取焦点后光标在字符串后
Sep 17 Javascript
JavaScript事件委托用法分析
Jan 24 Javascript
微信小程序图片自适应支持多图实例详解
Jun 21 Javascript
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
Feb 26 Javascript
详解vue 不同环境配置不同的打包命令
Apr 07 Javascript
vue 移动端注入骨架屏的配置方法
Jun 25 Javascript
JavaScript实现简单验证码
Aug 24 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
消息持续发送的完整例子
2006/10/09 PHP
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
PHP正确配置mysql(apache环境)
2011/08/28 PHP
php中运用http调用的GET和POST方法示例
2014/09/29 PHP
PHP正则表达式之捕获组与非捕获组
2015/11/06 PHP
PHP微信公众号自动发送红包API
2016/06/01 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
javascript实现划词标记+划词搜索功能
2007/03/06 Javascript
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
js与jQuery 获取父窗、子窗的iframe
2013/12/20 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
2015/01/26 Javascript
深入理解Ajax的get和post请求
2016/06/02 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
AngularJS中的作用域实例分析
2018/05/16 Javascript
在vue中读取本地Json文件的方法
2018/09/06 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
vue 重塑数组之修改数组指定index的值操作
2020/08/09 Javascript
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
网络工程师面试(三木通信技术有限公司)
2013/06/05 面试题
入党申请书自我鉴定
2013/10/12 职场文书
专科毕业生自我鉴定
2013/12/01 职场文书
高等教育专业自荐信范文
2014/03/26 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书
导游词之桂林山水
2019/09/20 职场文书