知识点:利用vue的基本语法实现,自动补全功能

参考博客:https://www.jb51.net/article/136282.htm

效果:在文本框中,输入相关名称,调用后台接口,将数据填充到下拉div中,然后选择相应的选项,将值赋值到文本框中 (暂时是离开文本框,触发下拉框div,之后会改进demo)

代码:

<div style="width: 800px">
<div v-for="(v,i) in contactlist">
<div data-repeater-list="">
<div data-repeater-item>
<div class="form-group m-form__group row" style="padding-top: 15px;padding-bottom: 15px;">
<label class="col-form-label col-lg-2 col-sm-12">联系人<span
style="color: #F00">*</span>
</label>
<div class="col-lg-3">
<input type="text" v-model="contactlist[i].name" @change="onchangContactPersonName(i)"
class="form-control m-input--fixed"
placeholder="请搜索联系人名称"/>
<div class="select-panel">
<div v-show="contactlist[i].isShow" v-for="w in words" class="select-item" @click="click_item(w,i)">{{ w.NAME }}</div>
</div>
</div >
<label class="col-form-label col-lg-2 col-sm-12">电话<span
style="color: #F00">*</span></label>
<div class="col-lg-3">
<input type="text" v-model="contactlist[i].phone"
class="form-control m-input--fixed"
placeholder=""/>
</div>
<div class="col-lg-1">
<div data-repeater-delete=""
style="margin-left: 25px"
v-on:click="deleteContactNode(i)"
class="btn-sm btn btn-danger m-btn m-btn--icon m-btn--pill">
<span style="width: 20px;height: 25px;">
<!--<i class="la la-trash-o"></i>-->
                                                     <span> 删除</span>
</span>
</div>
</div>
<div class="col-lg-1">
<div data-repeater-create=""
style="width: 55px;margin-left: 15px"
v-on:click="addContactNode()"
class="btn btn btn-sm btn-brand m-btn m-btn--icon m-btn--pill m-btn--wide">
<span style="width: 20px;height: 25px;margin-left: -13px">
<!--<i class="la la-plus"></i>-->
<span> 添加 </span>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
// register the component
Vue.http.options.emulateJSON = true;
Vue.component('treeselect', VueTreeselect.Treeselect)
new Vue({
el: '#app',
data: {
//联系人数组
contactlist:[
{id:'',name: '', phone: '',isShow:false}
], words: [],//联系人名搜索数组
},
 
//监听联系人变化
onchangContactPersonName:function (i) {
var name=this.contactlist[i].name;
this.$http.post("/contact/findContactPersonList",{name:name}).then(function(response) {
this.words = response.data;
//如果药品名称搜索为空,则给出提示
if(this.words.length<1){
alert("没有您要搜索的联系人!");
this.contactlist[i].name='';//清空输入的内容
}else {
this.contactlist[i].isShow=true;//显示药品下拉框
} }).catch(function(response) {
alert("调用后台接口失败!");
});
}, //单个联系人选项点击事件
click_item:function(w,i) {
debugger
this.contactlist[i].id=w.ID;
this.contactlist[i].name=w.NAME;
this.contactlist[i].isShow=false;
// 校验联系人名称是否已经输入
this.VerifyContactName(i);
}, //校验联系人名称,在数组中是否已经存在
VerifyContactName:function (i) {
var flag=true;
var tempId=this.contactlist[i].id;
for(var j=0;j<i;j++){
if(this.contactlist[j].id==tempId){
flag=false;
}
}
if(flag==false){
alert("联系人名称已输入!");
this.contactlist[i].id=''
this.contactlist[i].name='';//清空输入的内容
return false;
}else {
return true;
}
},

 }
})
</script>
源码链接:https://github.com/shuaishuaihand/vuedynamicdivdemo.git
												

vue中实现中,自动补全功能的更多相关文章

  1. Python中tab键自动补全功能的配置

    新手学习Python的时候,如何没有tab键补全功能,我感觉那将是一个噩梦,对于我们这种菜鸟来说,刚接触python,对一切都不了解,还好有前辈们的指导,学习一下,并记录下来,还没有学习这个功能小伙伴 ...

  2. Python3设置在shell脚本中自动补全功能的方法

    本篇博客将会简短的介绍,如何在ubuntu中设置python自动补全功能. 需求:由于python中的内建函数较多,我们在百纳乘时,可能记不清函数的名字,同时自动补全功能,加快了我们开发的效率. 方法 ...

  3. purcell的emacs配置中的自动补全功能开启

    标记一下,原文参看purcell的emacs配置中的自动补全功能开启 修改init-auto-complete.el文件 ;;(setq-default ac-expand-on-auto-compl ...

  4. Xcode6中Swift没有智能提示和自动补全功能

    今天在学习Swift的过程中,编写代码,发现没有智能提示和自动补全功能,一阵不适应,在网上溜达了下,找到了解决办法,测试可行 中文系统新建工程,copyright里有日期,2014年,“年”..然后删 ...

  5. Eclipse中输入变量会自动补全上屏的解决方法

    我自己在启动Eclipse代码补全后输入感觉确实爽多了,但是每次输入变量后一按下空格,编译器会自己帮你写一个很蛋疼的名字,比如你输入了:String mStr后按下空格,它就变成了mString,十分 ...

  6. 使用Redis实现中英文自动补全功能详解

    1.Redis自动补全功能介绍: ​ Redis可以帮我们实现很多种功能,今天这里着重介绍的是Redis的自动补全功能的实现.我们使用有序集合,并score都为0,这样就按元素值的字典序排序.然后我们 ...

  7. StringBoot整合ELK实现日志收集和搜索自动补全功能(详细图文教程)

    @ 目录 StringBoot整合ELK实现日志收集和搜索自动补全功能(详细图文教程) 一.下载ELK的安装包上传并解压 1.Elasticsearch下载 2.Logstash下载 3.Kibana ...

  8. gocode+auto-complete搭建emacs的go语言自动补全功能

    上篇随笔记录了在emacs中使用go-mode和goflymake搭建了go语言的简单编程环境(推送门),今天来记录一下使用gocode+auto-complete配置emacs中go语言的自动补全功 ...

  9. Eclipse自动补全功能和自动生成作者、日期注释等功能设置

    修改作者.日期注释格式:打开Windows->Preferences->Java->Code Style->Code Templates,点击右边窗口中的Comments,可以 ...

随机推荐

  1. js判断手机型号

    由于oppo手机自带浏览器的高度底部多了144px导航栏 所以:专门针对oppo手机做适配: var dowphone = document.getElementById("dowphone ...

  2. 常用的vue辅助工具vue-devtools

    1,下载: https://github.com/datura-lj/vuedevtools 2,将下载好的文件拖到chrome拓展栏中(更多工具=>拓展程序): 3,修改计算机配置文件: wi ...

  3. Minix2.0操作系统公用头文件说明

    以下头文件均在目录include/下: ansi.h: 用来检测编译器是否遵循标准C,如果是的话,_ANSI就被定义为31415,如果不是的,则_ANSI未定义.通过这个宏来诊测. limits.h: ...

  4. 在linux下安装Avria(小红伞)

    1.下载AntiVir PersonalEdition Classic for linux http://www.free-av.com/ 2.解压: tar zxvf antivir.tar.gz ...

  5. django后台导入excel文件

    1.django 如何从后台上传excel中批量解析数据 要从django后台导入的excel中批量解析数据,举一个例子,我们向后抬批量导入svn历史数据数据格式 假设excel表中有4列,每列分别是 ...

  6. linux对文件某列求和

    对文件某列求和: -F,用,号分隔,求第3行的和 awk -F,  '{sum += $3};END {print sum}' test

  7. postgresql----数据库表约束----UNIQUE

    四.UNIQUE ---- 唯一约束 唯一键可以是单个字段,也可以是多个字段的组合,设置唯一约束后,INSERT或UPDATE时如果表中唯一键字段中已存在该数据,则拒绝该行数据的INSERT或UPDA ...

  8. java 中的控制台端口的输入

    java 中基于控制台端的输入时最基本的操作. 第一步 导入Scanner类 import java.util.Scanner; 第二步 创建输入对象 input Scanner input=new ...

  9. 【ArcGIS for JavaScript api】Clusterlayer聚簇类

    1.作用: 聚簇类是用于前端显示优化,使POI点要素显示更为美观.大量的Marker距离太近会引起压盖而对浏览或者操作产生不便,因此,一般在超过1K点的时候,用此类.. 2.使用方式: 1: // c ...

  10. redis cluster 集群畅谈(二)

    上一篇http://www.cnblogs.com/qinyujie/p/9029482.html, 主要讲解 redis cluster 集群 搭建,本篇主要讲解实验多master写入.读写分离.实 ...