基于jQuery使用Ajax动态执行模糊查询功能

使用Ajax动态执行模糊查询功能

•必须:需要一个执行查询的接口:

说明:

1.搜索模块仅仅使用了boostrap的样式以及Jquery.js文件

2.因为我使用的layui的弹出层里面做的搜索ifram,所以确定和取消按钮的关闭当前页面的功能都是layui的方式,如果不是ifram的窗口仅仅在当前窗口执行的情况下,可以使用下面的语句来进行关闭当前页面的操作:

window.opener=null; window.open('','_self'); window.close();

效果展示:

基于jQuery使用Ajax动态执行模糊查询功能

引用三方功能模块:

<!--jquery--> <script src="https://www.jb51.net/assets/scripts/jquery.js" type="application/javascript"></script> <link href="https://www.jb51.net/assets/vendor/bootstrap/css/bootstrap.min.css" > <!--layui--> <link href="https://www.jb51.net/assets/vendor/layui/css/layui.css" > <script type="application/javascript" src="https://www.jb51.net/assets/vendor/layui/layui.js"></script>

样式:

<style> /*html { -ms-overflow-style:none; overflow:-moz-scrollbars-none; } html::-webkit-scrollbar{width:0px}*/ #select_template_group{ position: fixed; float: left; display: none; } .selected_keywords{ display: none; position: fixed; width: 590px; max-height: 300px; margin-top: 35px; z-index: 10002; } .selected_keywords > ul{ max-height: 300px; min-width: 590px; display: inline-block; overflow-y: scroll; overflow-x: hidden; } .list-group-item:hover{ color: #2E2D3C; background: #00AAFF; } #basic-addon1 > img{ width: 80%; height: 80%; } </style>

HTML代码:

<body> <!-- WRAPPER --> <div> <!-- NAVBAR --> <div></div> <!-- END NAVBAR --> <!-- END LEFT SIDEBAR --> <!-- MAIN --> <div> <!-- MAIN CONTENT --> <div> <div> <div> <!--查询位置--> <div> <span>选择模版</span> <input type="text" placeholder="选择模版,支持模糊查询" aria-describedby="sizing-addon2" oninput="template_choise(this)"> <!--搜索结果显示--> <div></div> </div> <!--展示位置--> <div> <div> <h4>已选择模版</h4> </div> <div></div> </div> <!--功能按钮--> <div> <div> <button type="submit">确认</button> </div> </div> <div> <div> <button type="submit">取消</button> </div> </div> </div> </div> </div> <!-- END MAIN CONTENT --> </div> <!-- END MAIN --> </div> <!-- END WRAPPER --> </body> </html>

Javascript代码:

<script> //点击空白区域隐藏搜索结果内容 $(document).click(function(e){ var _con = $('.selected_keywords'); // 设置目标区域 if(!_con.is(e.target) && _con.has(e.target).length === 0){ // Mark 1 // todo $(".selected_keywords").css("display","none") } }); // 搜索选择功能 function template_choise(obj) { // console.log($(obj).val().length) // 判断输入框内容为空的时候 if ($(obj).val().length == 0){ $(".selected_keywords").css("display","none") var selected_keywords = $(".selected_keywords") selected_keywords.empty() } else { //获取setinterval的索引 var index = window.setInterval(function () { // 获取输入框中的搜索关键字 var serach_keywords = $(obj).val() var list_template = "<ul></ul>" //执行模糊查询功能,延迟200ms $.ajax({ type: "POST", url: "/admin/tsg_fuzzy_search", data: { "keywords": serach_keywords }, dataType: "json", success: function (data) { $(".selected_keywords").css("display", "block") $(".selected_keywords").html(list_template) $(".list-group").empty() var code = data["code"] var data = data["data"] //判断是否存在搜索结果 if(code == "000000") { $.each(data, function (i, data) { var data_complte = data["template_rule_name"] + "," + data["template_name"] + "," + data["template_desc"] var html_style = "<a href='javascript:'><li>" + data_complte + "</li></a>" $(".list-group").append(html_style) }) } else if(code == "200000"){ $(".list-group").append("<li>没有找到合适的结果</li>") } //清除当前interval window.clearInterval(index) }, fail: function () { alert("查询失败") } }) // 延时200ms }, 200) } } //添加选择的模版到展示栏 function choise_one_template(obj) { //获取选择的值 var template_data = $(obj).text() //拆分获取的数据 var selected_template = template_data.split(",") //获取指定的数据 selected_template = selected_template[1] // console.log(selected_template) //制作html var selected_template_html = "<button type='button' aria-label='Left Align'><span aria-hidden='true'></span> "+selected_template+"</button>" //在指定div内插入html $("#results_2").append(selected_template_html) } //删除当前已选择的template function delete_template(obj) { //获取选择的值数据 var template_data_selected = $(obj).text() console.log(template_data_selected) //获取当前删除的html内容 var father_button_html = $(obj).closest("button") //从指定容器中删除该内容 father_button_html.remove() } //关闭当前ifram function tsg_cancle(){ layui.use('layer', function() { var layer = layui.layer layer.confirm('您确定要关闭本页吗?', {icon: 3, title: '您确定要关闭本页吗?'}, function (index) { //清除已选择的模版信息 // localStorage.removeItem("selected_template_data") //清除已排序的模板信息 localStorage.removeItem("template_data_sorted") var layer = layui.layer; var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引 parent.layer.close(index); //再执行关闭 layer.close(index); }) }) } //确认按钮=提交 function tsg_confirm() { var selected_template_datas = [] $(".template_data").each(function (i,element) { selected_template_datas[i] = $(element).text() }) localStorage.setItem("template_data_sorted",selected_template_datas) layui.use('layer', function() { var layer = layui.layer var layer = layui.layer; var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引 parent.layer.close(index); //再执行关闭 layer.close(index); }) //刷新父页面 parent.location.reload() } } } </script>

总结

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/d7b7c85160ba352c8bbe30f918cfc092.html