zoukankan      html  css  js  c++  java
  • 使用VUE+element ui 实现输入框 占位符自动补全功能

    效果

    输入${@    即可弹出内容

    2、选中即可填充

     

     代码:

    1、templet

     <el-autocomplete
                    type="textarea"
                    class="el-input"
                    :key="1"
                    v-model="form.templet"
                    :fetch-suggestions="querySearchAsync"
                    placeholder="请输入内容"
                    :trigger-on-focus="false"
                    @select="((item) => {handleSelect(item)})">
    </el-autocomplete>

    2、ts

    autoInputs: any[] = ["", ""]
    lastAutoInputs: any[] = ["", ""]
    oldAutoInput:string | undefined=''

    //返回输入建议的方法,也就是说输入框一获取焦点。就会自动调用该方法拿到数据,这些数据就是输入建议的数据。
    querySearchAsync(queryString: any, cb: any) {
    this.oldAutoInput=this.form.templet;
    // 为 string 添加 startswith 函数
    if (typeof String.prototype.startsWith != 'function') {
    String.prototype.startsWith = function (prefix) {
    return prefix.slice(0, prefix.length) === prefix;
    }
    }

    // 为 string 添加 endsWitch 函数
    if (typeof String.prototype.endsWith != "function") {
    String.prototype.endsWith = function (suffix) {
    return this.indexOf(suffix, this.length - suffix.length) !== -1;
    }
    }

    var results:any[] = []
    if (queryString.endsWith("${@}") || queryString.endsWith("${@")) {
    results = this.templetList.map(slotName => {//templetList是从后台查询的下拉的数据集
    return {"value":slotName.desc+":"+ slotName.type+'.'+slotName.name+'()'}
    })
    }
    cb(results)
    }

    // 创建过滤器
    createStateFilter(queryString: any) {
    return (program:any) => {
    return (program.value.toLowerCase().indexOf(queryString.toLowerCase()) !== -1);
    };
    }

    // 取值操作 你选中那行,item就就是那那条数据,直接赋值v-modal就实现回显了。
    handleSelect(item:any, index:any) {
    if(this.oldAutoInput.lastIndexOf("${@")>0){
    this.form.templet=this.oldAutoInput.substring(0,this.oldAutoInput.lastIndexOf("${@"))+"${"+item.value.split(":")[1]+"}"
    }
    }
  • 相关阅读:
    flex4.5 + .net4.0 以二进制方式上传图片
    Flex 使用wigdet组件库 实现自定义事件 派发 和 监听
    flex4.5生成验证码
    转载:区分浏览器关闭和刷新
    访问远程sqlsever 2000服务器设置
    CSS实现三角形
    android SQLite 数据库打开要记得关闭
    在android项目里使用自带的SQLite数据库
    解决使用 JDK 1.7 对 Android apk 签名后程序无法安装的问题
    sina app engine 新浪云计算平台,完备的PHP+MySQL开发平台
  • 原文地址:https://www.cnblogs.com/luo1240465012/p/15035569.html
Copyright © 2011-2022 走看看