zoukankan      html  css  js  c++  java
  • 使用 mui jquery javascript 实现智能提示功能

    先上效果图:

     实现的步骤:

    第一步:页面的准备,需要使用 mui 的search控件,以及自己准备一个供提示 DIV,这里我贴一下我的页面代码,主要是通过 onkeyup 事件来检查什么时候进行数据的提交,不过如果不对该事件加以控制会向后台发送没有意义的数据,加大服务器的压力,那么我这里的做法是先简单判断一下输入框中是否有内容,然后通过 last-data 来记录上一次搜索的数据:

    <!--搜索-->
    <div class="mui-input-row mui-search" style="margin: 11px 11px 1px 11px;"> <input type="search" class="mui-input-clear dealer-shop-input" placeholder="请输入经销商姓名或店铺" onkeyup="search_dealer_shop()" last-data="" onblur="search_dealer_lose()" onfocus="search_dealer_focus()"> </div> <div class="mui-row" style="margin: 1px 11px 10px 11px"> <div class="search-res" style=" 100%; min-height: 80px; border-radius: 5px; box-shadow: 0 0 7px #827b7b; display: none"> <ul class="mui-table-view"> <div class="template-search-res"> <!-- 可在获取数据后酌情使用该模板 <li class="mui-table-view-cell"> <a href=""> 小猫子商铺 <span class="mui-badge mui-badge-inverted">商铺</span> </a> </li> --> </div> </ul> </div> </div>

    第二步:就是想服务器发送请求,以及内容显示相关的逻辑,比如说发起了新的请求,之前请求到的内容就应该从模板中移除,代码如下:

    <script>
        // 搜索事件
        function search_dealer_shop() {
            var kw = $('.dealer-shop-input').val();
            var last_data = $('.dealer-shop-input').attr('last-data');
            if (kw != '' && last_data != kw) {
                $('.dealer-shop-input').attr('last-data', kw);
    
                $.post("{php echo $this->createMobileUrl($filename)}", {'op': 'search_dealer_shop', 'kw': kw}, function (res) {
                    $('.add-template-search-res').remove();
                    var html = "<div class='add-template-search-res'>";
                    if (res.code == 0) {
                        html += "<li class="mui-table-view-cell">
    " +
        "                            暂无数据
    " +
        "                            <span class="mui-badge mui-badge-inverted">系统</span>
    " +
        "                        </li>";
                    } else {
                        //
                        console.log(res);
                        for (var i = 0; i < res.data.length; ++ i) {
                            html += "<li class="mui-table-view-cell">
    " +
            "                            <a href=""+ res.data[i].url +"">
    " +
            "                                "+ res.data[i].name +"
    " +
            "                                <span class="mui-badge mui-badge-inverted">"+ (res.data[i].type == 1 ? "经销商": "商铺") +"</span>
    " +
            "                            </a>
    " +
            "                        </li>";
                        }
                    }
    
    
                    html += "</div>";
                    $('.template-search-res').append(html);
                    $('.search-res').css('display', 'block');
                }, 'json');
            }
        }
    
        // 失去焦点事件
        function search_dealer_lose() {
            $('.search-res').css('display', 'none');
        }
    
        // 获取焦点
        function search_dealer_focus() {
            var kw = $('.dealer-shop-input').val();
            if (kw != '') {
                $('.search-res').css('display', 'block');
            }
        }
    </script>

    说明:$.post() 中的内容以及后端的代码小伙伴们可以根据自己的需求酌情设计

  • 相关阅读:
    判别模型、生成模型与朴素贝叶斯方法
    git的安装已经连github
    uva 10061 How many zero's and how many digits ?
    Java菜鸟学习笔记()--面向对象篇(七):Wrapper Class包装类
    丁香园技术负责人冯大辉近日在知乎上披露了当年共同创办阿里巴巴的18个合伙人的近况:
    不用派生CTreeCtrl不用繁琐的过程 教你如何让CTreeCtrl的每一项有ToolTip提示
    数据结构排序系列详解之三 冒泡排序
    HDU 4612 (13年多校第二场1002)无向图缩点,有重边
    Mac下cocos2dx3.1用Cocos IDE写的Lua binding篇01
    SECURITY_ATTRIBUTES 设置低权限
  • 原文地址:https://www.cnblogs.com/GetcharZp/p/12197775.html
Copyright © 2011-2022 走看看