发布于 5年前

Jquery 实现可输入、可搜索的下拉框

效果预览

Jquery 实现可输入、可搜索的下拉框

实现代码

 <!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>可输入下拉框</title>
    <style type="text/css">
        form{
            width:220px;
            margin:50px auto;
            padding: 20px;
            color: #333;
        }

        input{
            width: 220px;
            padding: 10px 10px;
            border-radius: 2px;
            border:1px solid #ddd;
        }

        .list{
            width: 240px;
            margin:2px 0;
            padding:0;
            border: 1px solid #ddd;
            display: none;

        }

        .list li{
            list-style: none;
            cursor: pointer;
            padding:0 10px;
            line-height: 30px;
        }

        .list li.selected{
            background: #eee;
        }

    </style>
</head>
<body>

<form action="">
    <input type="text" name="fruit" placeholder="请选择或输入水果名称">
    <ul class="list">
        <li>苹果</li>
        <li>香蕉</li>
        <li>葡萄</li>
        <li>菠萝</li>
    </ul>
</form>

<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
    $("input").focus(function(){
        $(".list").fadeIn(200);
    })

    $("input").keyup(function(){
        var value = $("input").val();
        var list = $(".list li");

        list.each(function(){
            var name = $(this).text();

            if(name.indexOf(value) >= 0 ) { 
                $(this).show();
            }else{
                $(this).hide();
            }

        });

    })

    $("input").blur(function(){
        $(".list").fadeOut(200);
    })

    $(".list li").click(function(){
        $(this).addClass('selected');
        $(this).siblings().removeClass('selected');

        $("input").val($(this).text());
    })

</script>
</body>
</html>
©2020 edoou.com   京ICP备16001874号-3