1.实现这个功能主要是 keyup() 事件,input框的值有变化时,会实时获取input的值value,然后通过ajax发送请求获取匹配的数据
keyup()监测键盘松开时事件,所有在模糊匹配进行异步请求时,延时0.8秒内没有操作键盘再发送
Html
<div class="home_search">
<div class="search_box flex justify-b align-c">
<input type="text" placeholder="搜索科室" class="search_name" />
<button class="search_btn"><img src="/images/search.png" /></button>
</div>
<!-- 模糊查询框 -->
<div class="search-scrollbar">
<ul class="dropdown-menu">
<c:forEach items="${sysKsAll}" var="sysKs">
<li><a>${sysKs.name}</a></li>
</c:forEach>
</ul>
</div>
</div>
脚本如下:
//监控input标签键盘操作
$(".search_box input").keyup(function (event) {
last = event.timeStamp;
setTimeout(function () {
if(last-event.timeStamp==0){
//如果时间差为0(也就是你停止输入0.5s之内都没有其它的keyup事件发生)则做你想要做的事
let value = $(".search_box input").val();
getSearchData(value);
}
},800);
});
//模糊查询请求数据
function getSearchData(value) {
$.ajax({
url:'/keshigaikuang/searchKs',
type: 'get',
dataType: 'json',
data: {searchVal: value},
success: function (data) {
if (data.success){
let html = "";
for (let i = 0; i < data.sysKs.length; i++) {
html += "<li><a>"+ data.sysKs[i].name +"</a></li>"
}
$(".dropdown-menu").html(html);
}
}
});
}
评论 (0)