js实现文本框输入时同步出现模糊搜索列表

做项目的时候遇到类似于淘宝搜索【鞋】,出现【皮鞋】【运动鞋】这样的模糊搜索功能需求,效果如下:

下面是简单实现方式

html部分

<div class="fubao-serch">
			<div class="mui-input-row mui-search">
				<input type="search" id="selectzx" class="mui-input-clear" autocomplete="off" placeholder="搜索资讯">
			</div>
			<div id="historybox">
				<ul id="fuzzylist">
					<!--<li>
							<div class="bag-title">是吗是吗是吗是吗是吗是吗是吗</div>
					</li>-->
				</ul>
			</div>
		</div>

CSS部分

	        /*搜索框样式*/
			
			.fubao-serch {
				margin: 10px 15px -15px 15px;
				border-radius: 25px;
			}
			//搜索列表框样式
			#historybox {
				width: 100%;
				position: absolute;
				top: 55px;
				left: 0;
				/* 隐藏 */
				display: none;
				font-size: 16px;
				margin-top: 10px;
				background-color: #F6F6F6;
				color: #353535;
				z-index: 900;
			}
			
			li {
				list-style: none;
				height: auto;
				line-height: 35px;
				width: 100%;
				margin-left: -20px;
				padding-top: 10px;
			}
			
			.bag-title {
				display: inline;
				width: auto;
				float: left;
			}

JS部分

//输入框正在输入时
		$("#selectzx").on('input', function() {
			if($('#selectzx').val() != "") {
				FuzzySearch($('#selectzx').val());
				$('#historybox').css('display', 'block');
			} else {
				$('#historybox').css('display', 'none');
				$('#selectzx').val() == "";
			}
			//点击X的时候关闭模糊搜索框
			$(document).one("click", function() {
				$('#historybox').css('display', 'none');
			});
		})
          //模糊搜索
		function FuzzySearch(_serchtext) {

			mui.Validation_Api("XXX/XXX/XXX", {  //调用后端接口
				"keyWord": _serchtext
			}, function(data) {
				if(data.respCode == "200") {
					var pn = document.getElementById("fuzzylist"),
						str = "";
					for(var i = 0; i < data.data.rows.length; i++) {
						str += '<li onclick=\'JacyWindow("FuBaoSouSuoDetil.html?word=' + _serchtext + '&type=0", "FuBaoSou", "福宝搜索")\'>';
						str += '<div class="bag-title">' + data.data.rows[i].nwsTitle.replace(eval(reg), "<span style='color: #015293;'>$&</span>") + '</div>';
						str += '</li>';
					}
					pn.innerHTML = str;
				} else {
					mui.toast("错误:" + data.message);
				}
			});

		}

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值