先上效果图:

实现的步骤:
第一步:页面的准备,需要使用 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() 中的内容以及后端的代码小伙伴们可以根据自己的需求酌情设计