vue简单写一个搜索框搜索时模糊提示

本文展示了如何在Vue项目中创建一个搜索框,实现用户输入时的模糊搜索提示功能。通过监听`@input`、`@focus`和`@blur`事件,实时更新搜索结果显示列表。使用`v-for`遍历数据并展示匹配项,当输入为空或失去焦点时,隐藏提示列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搜索框模糊提示

HTML部分 

<template>
    <div class="content">
        <input v-model="value" label="搜索" placeholder="请输入用户名"         @input="searchchange" @focus="focuschange"
            @blur="blurchange" />
        <ul class="Newbox" v-if="Isshow">
            <li v-for="(item,index) in newsListTow" :key="index">
                {{item}}
            </li>
        </ul>
    </div>
</template>

 Js部分

<script>
    export default {
        data() {
            return {
                value: null,
                newsList: [
                    '软件园三期B1栋', '软件园三期B2栋', '软件园三期B3栋',
                    '集美园三期B4栋', '集美园三期B5栋', '集美园三期B6栋', '集美园三期B7栋',
                ],
                newsListTow: [],
                Isshow: false
            };
        },
        methods: {
            searchchange() { //输入框时输入中事件
                if (this.value == '') {
                    this.Isshow = false
                } else {
                    this.newsListTow = [] //防止从复
                    this.newsList.forEach(item => {
                        if (item.indexOf(this.value) != -1) {
                            this.newsListTow.push(item)
                        }
                    })
                    this.Isshow = true

                }
            },
            focuschange() { //鼠标点击时焦点事件
                if (this.value == '') {
                    this.Isshow = false
                } else {
                    this.Isshow = true
                    this.newsListTow = []
                }
            },
            blurchange() { //输入移除框事件
                this.Isshow = false
            },

        },
    };
</script>

CSS 部分

<style>
    input {
        width: 320px;
        height: 30px;
        margin-top: 10px;
        margin-left: 110px;
    }

    .Newbox {
        width: 300px;
        height: auto;
        border: 1px solid #ccc;
        margin-left: 110px;
        padding: 10px;
        margin-top: 10px;
    }

    .Newbox li {
        font-size: 14px;
        margin-bottom: 10px;
        cursor: pointer;
    }

    .Newbox li:hover {
        color: darkgoldenrod;
    }
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值