带搜索框选择的下拉列表

html

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" />
    <meta http-equiv="X-UA-Compatible" content="IE=9" />
    <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=yes">
    <title>带有搜索的下拉框</title>
    <script src="jquery-1.12.4.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
<body>
    <div class="searchBox">
        <div class="">
            <div style="position: absolute; right: 30px; top: 5px;">
                <em class="fa fa-angle-down"></em>
            </div>
            <input type="text" class="form-control addMemberToggle" placeholder="添加诊疗" readonly="" style="background-color:#fff;" required="required">
            </div>
            <div class="JnMemberSelect" style="display: block;">
            <input type="text" class="form-control" placeholder="搜索现有数据" id="searchMember" autofocus="autofocus">
            <div id="JnMemberSelect">
                <ul class="form-control" style="list-style: none;margin: 0;cursor:pointer;height:100px;overflow-x:hidden;overflow-y:auto;" id="searchResult">
                    <li class="optionLi">苹果</li>
                    <li class="optionLi">哈密瓜</li>
                    <li class="optionLi">桔子</li>
                    <li class="optionLi">香蕉</li>
                    <li class="optionLi">雪梨</li>
                    <li class="optionLi">人参果</li>
                    <li class="optionLi">百香果</li>
                    <li class="optionLi">榴莲</li>
                    <li class="optionLi">山竹</li>
                    <li class="optionLi">樱桃</li>
                    <li class="optionLi">西瓜</li>
                    <li class="optionLi">羊角蜜</li>
                </ul>
            </div>
        </div>
    </div>
</body>

css

<style>
            body,
            html {
                width: 100%;
                overflow: hidden;
            }

            .searchBox {
                margin: 10px;
            }

            @media only screen and (min-width: 1200px) {
                .searchBox {
                    margin: 10px 20%;
                }
            }

            .form-control {
                width: 90%;
                padding: 6px 16px;
                font-size: 14px;
                line-height: 1.52857143;
                color: #3a3f51;
                background-color: #ffffff;
                background-image: none;
                border: 1px solid #dde6e9;
                border-radius: 4px;
            }
        </style>

js

<script type="text/javascript">
        $(function() {
            $(document.body).on("click", ".addMemberToggle", function() {
                $(".JnMemberSelect").toggle();
                $(".addMemberToggle").val("");
            });
            $(document.body).on("click", ".optionLi", function() {
                var Member = $(this).text();
                $(".addMemberToggle").val(Member);
                $(".JnMemberSelect").hide();
            });
            //监听搜索框输入事件,有内容的话就进行查询
            var searchItem = ''; //搜索框内容
            $('#searchMember').on('input', function() {
                var _v = $.trim($(this).val());
                $('#searchResult').empty();
                if(_v != '') {
                    searchItem = _v;
                    searchShopFn(_v);
                } else {

                }
            });
            //模糊查询ajax请求数据  keyWord就是关键词
            function searchShopFn(keyWord) {
                $.ajax({
                    type: "post",
                    url: "",
                    async: false,
                    data: {
                        typename: "",
                        xmname: keyWord
                    },
                    success: function(strValue) {
                        //将关键字传给后台,根据后台查询数据库,重新加载<li></li>数据
                    }
                })
            }
        })
    </script>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现下拉列表的Vue.js搜索框,可以按照以下步骤进行: 1. 在Vue.js的模板中添加一个输入和一个下拉列表组件: ``` <template> <div> <input type="text" v-model="searchTerm" @input="onInput"> <ul v-if="showResults"> <li v-for="result in searchResults" :key="result.id" @click="onResultClick(result)"> {{ result.name }} </li> </ul> </div> </template> ``` 2. 在Vue.js数据中定义一个变量来存储搜索关键字和搜索结果: ``` <script> export default { data() { return { searchTerm: '', searchResults: [], showResults: false } } } </script> ``` 3. 添加一个输入输入时触发的函数来处理搜索逻辑并更新搜索结果: ``` <script> export default { data() { return { searchTerm: '', searchResults: [], showResults: false } }, methods: { async onInput() { // 向后端发送搜索请求 const results = await fetch(`/search?term=${this.searchTerm}`) .then(response => response.json()) this.searchResults = results this.showResults = true }, onResultClick(result) { // 处理选中搜索结果的逻辑 console.log('选中了搜索结果:', result) } } } </script> ``` 4. 在onInput函数中向后端发送搜索请求并更新搜索结果,同时将showResults设置为true来显示下拉列表。在onResultClick函数中可以实现选中搜索结果的具体逻辑。 以上就是一个下拉列表的Vue.js搜索框的实现。当用户在输入中输入关键字时,将会触发onInput函数,向后端发送搜索请求并更新搜索结果,并将showResults设置为true来显示下拉列表。用户在下拉列表选择一个搜索结果时,将会触发onResultClick函数,处理选中搜索结果的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值