vue中实现中,自动补全功能
知识点:利用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中实现中,自动补全功能的更多相关文章
- Python中tab键自动补全功能的配置
新手学习Python的时候,如何没有tab键补全功能,我感觉那将是一个噩梦,对于我们这种菜鸟来说,刚接触python,对一切都不了解,还好有前辈们的指导,学习一下,并记录下来,还没有学习这个功能小伙伴 ...
- Python3设置在shell脚本中自动补全功能的方法
本篇博客将会简短的介绍,如何在ubuntu中设置python自动补全功能. 需求:由于python中的内建函数较多,我们在百纳乘时,可能记不清函数的名字,同时自动补全功能,加快了我们开发的效率. 方法 ...
- purcell的emacs配置中的自动补全功能开启
标记一下,原文参看purcell的emacs配置中的自动补全功能开启 修改init-auto-complete.el文件 ;;(setq-default ac-expand-on-auto-compl ...
- Xcode6中Swift没有智能提示和自动补全功能
今天在学习Swift的过程中,编写代码,发现没有智能提示和自动补全功能,一阵不适应,在网上溜达了下,找到了解决办法,测试可行 中文系统新建工程,copyright里有日期,2014年,“年”..然后删 ...
- Eclipse中输入变量会自动补全上屏的解决方法
我自己在启动Eclipse代码补全后输入感觉确实爽多了,但是每次输入变量后一按下空格,编译器会自己帮你写一个很蛋疼的名字,比如你输入了:String mStr后按下空格,它就变成了mString,十分 ...
- 使用Redis实现中英文自动补全功能详解
1.Redis自动补全功能介绍: Redis可以帮我们实现很多种功能,今天这里着重介绍的是Redis的自动补全功能的实现.我们使用有序集合,并score都为0,这样就按元素值的字典序排序.然后我们 ...
- StringBoot整合ELK实现日志收集和搜索自动补全功能(详细图文教程)
@ 目录 StringBoot整合ELK实现日志收集和搜索自动补全功能(详细图文教程) 一.下载ELK的安装包上传并解压 1.Elasticsearch下载 2.Logstash下载 3.Kibana ...
- gocode+auto-complete搭建emacs的go语言自动补全功能
上篇随笔记录了在emacs中使用go-mode和goflymake搭建了go语言的简单编程环境(推送门),今天来记录一下使用gocode+auto-complete配置emacs中go语言的自动补全功 ...
- Eclipse自动补全功能和自动生成作者、日期注释等功能设置
修改作者.日期注释格式:打开Windows->Preferences->Java->Code Style->Code Templates,点击右边窗口中的Comments,可以 ...
随机推荐
- 【Android M】预制的 Google GMS包
目录:android/vendor/google/apps .├── AndroidPay│ ├── Android.mk│ ├── AndroidPay_arm64.apk│ ├── A ...
- 【BZOJ1594】[Usaco2008 Jan]猜数游戏 二分答案+并查集
[BZOJ1594][Usaco2008 Jan]猜数游戏 Description 为了提高自己低得可怜的智商,奶牛们设计了一个新的猜数游戏,来锻炼她们的逻辑推理能力. 游戏开始前,一头指定的奶牛会在 ...
- HTML标签img--改变图片尺寸
转自:https://blog.csdn.net/u012377333/article/details/50508484 1.统一大小? 我的网页上面有许多的图片,有的大,有的小,我想如果图片大的实现 ...
- 一致性哈希算法(consistent hashing)(转)
http://blog.csdn.net/cywosp/article/details/23397179
- 手机相册管理(gallery) ---- HTML5+
模块:gallery Gallery模块管理系统相册,支持从相册中选择图片或视频文件.保存图片或视频文件到相册等功能.通过plus.gallery获取相册管理对象. 管理我们手机上用到的相册:选择图片 ...
- Think PHP递归获取所有的子分类的ID (删除当前及子分类)
递归获取所有的子分类的ID: //递归获取所有的子分类的ID function get_all_child($array,$id){ $arr = array(); foreach($array as ...
- Comparable 与 Comparator的区别
Comparable & Comparator 都是用来实现集合中元素的比较.排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序 ...
- 【模块化开发】------requireJS的基本使用------【巷子】
前言 为了提高代码的复用度,开发人员会按照功能把大量的js代码分成若干文件,这样在多个页面就可以使用同一个文件了.,下面是某个网站的js引用情况 虽然代码的复用度提升了,但是缺点也体现了出来 缺点: ...
- Servlet------>jsp EL表达式
取值: ${data}------>pageContext.findAttribute("data"); ${data.name}------>data.getName ...
- nginx:服务器集群
一.Nginx的事件处理机制 对于一个基本的web服务器来说,事件通常有三种类型,网络事件.信号.定时器. 首先看一个请求的基本过程:建立连接---接收数据---发送数据 . 再次看系统底层的操作 : ...