模糊查询

无字符要求起查

<template>
  <div class="home">
      <div>
        <input type="text" placeholder="请输入..." v-model="searchVal">
        <ul v-if="flag">
          <li v-for="(item,index) in NewItems" :key="index" @click="value(item)">{{item.name}}</li>
        </ul>
      </div>
  </div>
</template>

<script>
export default {
  name: 'home',
  data() {
    return {
      searchVal: '',
      items: [
        {
          name: '上海是我家',
          value: 'sh'
        },
        {
          name: '北京环境靠大家',
          value: 'bj'
        },
        {
          name: '重庆垃圾要分类',
          value: 'cq'
        },
        {
          name: '嗨幺妹',
          value: 'hhh'
        },
        {
          name: '海上我冲浪',
          value: 'hs'
        },
        {
          name: '京都',
          value: 'jd'
        },
        {
          name: '上海哈喽',
          value: 'hl'
        }
      ],
      flag: false
    }
  },
  computed: {
    NewItems() {
      let _this = this
      let NewItems = []
      // 控制几个字符起查
      // if (_this.searchVal.length >= 2) {
      this.items.map((item) => {
        if (item.name.search(_this.searchVal) != -1) {
          NewItems.push(item)
          if (_this.searchVal == item.name) {
            _this.flag = false
          }
        }
      })
      // }
      return NewItems
    }
  },
  watch: {
    searchVal(newold, lodval) {
      if (newold == this.searchVal) {
        this.flag = true
      }
      if (newold == '') {
        this.flag = false
      }
    }
  },
  methods: {
    value(item) {
      this.searchVal = item.name
      this.flag = false
    }
  },
  mounted() {
  },
  created() {
  }
}
</script>

<style scoped>

</style>

大于两个字符或者是更多字符起查

<template>
  <div class="home">
      <div>
        <input type="text" placeholder="请输入..." v-model="searchVal">
        <ul v-if="flag">
          <li v-for="(item,index) in NewItems" :key="index" @click="value(item)">{{item.name}}</li>
        </ul>
      </div>
  </div>
</template>

<script>
export default {
  name: 'home',
  data() {
    return {
      searchVal: '',
      items: [
        {
          name: '上海是我家',
          value: 'sh'
        },
        {
          name: '北京环境靠大家',
          value: 'bj'
        },
        {
          name: '重庆垃圾要分类',
          value: 'cq'
        },
        {
          name: '嗨幺妹',
          value: 'hhh'
        },
        {
          name: '海上我冲浪',
          value: 'hs'
        },
        {
          name: '京都',
          value: 'jd'
        },
        {
          name: '上海哈喽',
          value: 'hl'
        }
      ],
      flag: false
    }
  },
  computed: {
    NewItems() {
      let _this = this
      let NewItems = []
      // 控制几个字符起查
      if (_this.searchVal.length >= 2) {
        this.items.map((item) => {
          if (item.name.search(_this.searchVal) != -1) {
            NewItems.push(item)
            if (_this.searchVal == item.name) {
              _this.flag = false
            }
          }
        })
      }
      return NewItems
    }
  },
  watch: {
    searchVal(newold, lodval) {
      if (newold == this.searchVal) {
        this.flag = true
      }
      if (newold == '') {
        this.flag = false
      }
    }
  },
  methods: {
    value(item) {
      this.searchVal = item.name
      this.flag = false
    }
  }
}
</script>

<style scoped>

</style>

首先这只是一个列子,可把列子复制粘贴出来运行(我不会上传视频看效果),不用增加别的多余代码。直接模仿列子干活。样式自己写。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容