Element UI input输入框实现模糊查询

这篇具有很好参考价值的文章主要介绍了Element UI input输入框实现模糊查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Element UI的input输入框进行搜索的时候(根据输入内容提供对应的输入建议)有个坑,它只能用第一个字进行搜索,不能够实现模糊匹配,下面的方法就是填这个坑。

原来搜“奖”,后台给返回数据,但是不会出现下拉框。

例如:

element ui input模糊搜索,Element UI,前端,javascript

 只要搜“抽”才出现下拉框

element ui input模糊搜索,Element UI,前端,javascript

解决后实现效果:

element ui input模糊搜索,Element UI,前端,javascript

代码如下: 

    <el-row class="demo-autocomplete">
                <el-col :span="12">
                  <el-autocomplete
                    class="inline-input"
                    v-model="name"
                    :fetch-suggestions="querySearch"
                    placeholder="请输入内容"
                    :trigger-on-focus="false"
                    @select="handleSelect"
                    @input="changeData"
                  ></el-autocomplete>
                </el-col>
     </el-row>
<script>
export default {
  data() {
    return {
      name:"",//藏品名称
      restaurants: [],
    }
  },

  methods: {
    querySearch(queryString, cb) {
      var restaurants = this.restaurants;
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;
      cb(results);

    },
    createStateFilter(queryString) {
      return (state) => {
        return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) > -1);
      };
    },
    //@select 点击选中建议项时触发
    handleSelect(item) {
      this.name=item.value
      this.select=item.value
      this.getnumber()
    },
    //@input 在 Input 值改变时触发
    changeData(value){
      if(value!=''){
        this.handleChange()
      }else {
        this.image = ''
        this.select=""
      }
    },
    // 接口
    async handleChange() {
      let param={
        type:"collection",
        name:this.name
      };
      await this.$api.operateMgmt
        .synthesisWorks(param)
        .then((res) => {
          if (res.code == 200) {
            this.restaurants=res.data.map(item=>{
              return{
                value:item.title
              }
            })
            this.image=res.data[0].image
            this.worksId=res.data[0].id
          } else {
            this.$message({
              message: res.message,
              type: "error",
              duration: this.common.duration,
            });
          }
        });
    },
}
</script>

重点:

createStateFilter(queryString) {
      return (state) => {
        return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) > -1);
      };
    },
//这里大于-1可以实现模糊查询,如果你要搜“奖”,就会搜到含“奖”的所有字

如果使用Element UI里面的文章来源地址https://www.toymoban.com/news/detail-533568.html

      createFilter(queryString) {
        return (restaurant) => {
          return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
        };
      },
//这里等于0只能搜“奖”开头的字

到了这里,关于Element UI input输入框实现模糊查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element-ui 动态渲染input输入框、下拉框并校验

    先看效果: 代码实现: HTML JS

    2024年02月16日
    浏览(32)
  • element-ui输入框下拉远程搜索

    实现效果: 可以在你输入的时候出现一个下拉,将你输入的东西与下拉框的内容进行匹配,然后下拉框会显示匹配的内容  相关代码: :fetch-suggestions=\\\"querySearchAsync\\\"是定义下拉内容的函数方法,restaurants是下拉框的内容,timeout这个定时器使用来决定多少秒后显示筛选后的内容

    2024年02月05日
    浏览(35)
  • 解决:element ui表格表头自定义输入框单元格el-input不能输入问题

    表格表头如图所示,有 40-45,45-50 数据,且以输入框形式呈现,现想修改其数据或点击右侧加号增加新数据编辑。结果不能输入,部分代码如下 我看在这一块 template 中不需要用到 scope 去获取数据,于是没有加上 slot-scope=\\\"scope\\\" 结果不能输入,解决方法就是在表头自定义时将

    2024年02月03日
    浏览(43)
  • element ui el-input输入框type=number去掉上下箭头

    使用vue框架写法 如果是input标签type=number,将上述css代码中 ::v-deep 去掉即可

    2024年02月12日
    浏览(41)
  • Vue-给element-ui的input输入框绑定键盘事件不生效

    在vue中使用elementui的input组件绑定回车事件生效。 el-input @keyup.enter=\\\'方法\\\' /el-input 在vue中如果直接使用 v-on或@ 监听事件的话, 监听的是 由组件中使用$emit自定义的事件 , 例如下面代码。 使用 .native 修饰符, 告诉vue这是触发的 原生事件 不是 自定义事件 , 比如下面这个监听 ele

    2024年02月13日
    浏览(44)
  • Element-UI实现的下拉搜索树组件(el-select、el-input、el-tree组合使用)

    1、子组件封装 注意使用:正常使用 // 子组件使用 父组件调用

    2024年02月11日
    浏览(63)
  • vue+element ui 表格添加多个搜索条件筛选(前端查询)

    filterList 为筛选后的数据,可以重新给tableData赋值,赋值后如果遇到表格数据不刷新的情况,可以给table加上一个随机的key。这样可以解决重新赋值页面不刷新的情况。

    2024年02月16日
    浏览(27)
  • vue element-ui el-input输入框绑定@keyup.enter回车事件无效

    由于element-ui把input进行了封装,input外面是多一层div的。 在element-ui里有很多因为自身封装了几层标签导致事件和样式无法按想要的效果呈现,遇到后可以在网页中查看dom结构分析原因。 所以对于el-input,使用 @keyup.enter是无效的,需要加上 .native 限制符 .native修饰符的作用:

    2024年02月16日
    浏览(39)
  • vue+element-ui input输入框设置属性type为number去除右边的上下按键

    当 input type=number 时,去掉后面的上下按钮 1.全局样式改变: 2.在style中使用的是vue+element,通常写当前页面的样式时使用scoped,防止篡改其他页面样式,但是这样会发现上面的代码失效,此时需要使用/deep/去寻找 【定义样式】去除表框、去除上下箭头、去除滚轮事件 3.在sty

    2024年02月11日
    浏览(39)
  • VUE element-ui之form表单中input输入超过规定长度error提醒,并实时显示输入长度,可无限输入

    需求:输入超过规定长度error提醒,并实时显示输入长度,可无限输入 步骤: 我的项目中使用校验比较多,所以进行简单的封装: 新建js文件写入下面的函数 需要校验的组件引用使用: data中定义: form表单中prop要和rules中定义校验名一致: 看效果: 可以看到我们自定义n

    2024年02月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包