首页 > javascript相关 > jquery教程 > 正文

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

2018-11-17 16:46:36

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

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

说明:

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

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

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

效果展示:

引用三方功能模块:

<!--jquery--> <script src="assets/scripts/jquery.js" type="application/javascript"></script> <link rel="stylesheet" href="assets/vendor/bootstrap/css/bootstrap.min.css" rel="external nofollow" > <!--layui--> <link rel="stylesheet" href="assets/vendor/layui/css/layui.css" rel="external nofollow" > <script type="application/javascript" src="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 id="wrapper">   <!-- NAVBAR -->   <div id="nav"></div>   <!-- END NAVBAR -->   <!-- END LEFT SIDEBAR -->   <!-- MAIN -->   <div class="main">    <!-- MAIN CONTENT -->    <div class="main-content">     <div class="container-fluid" style="width: 700px;">      <div class="form-horizontal">       <!--查询位置-->       <div class="input-group" id="">        <span class="input-group-addon" id="sizing-addon2">选择模版</span>        <input type="text" class="form-control" placeholder="选择模版,支持模糊查询" aria-describedby="sizing-addon2" id="fuzzy_search" oninput="template_choise(this)">        <!--搜索结果显示-->        <div class="input-group selected_keywords"></div>       </div>       <!--展示位置-->       <div class="panel panel-primary">        <div class="panel-heading">         <h4 class="panel-title">已选择模版</h4>        </div>        <div class="panel-body" id="results_2"></div>       </div>       <!--功能按钮-->       <div class="form-group" style="float: left;margin-left: 25%">        <div class="col-sm-offset-2 col-sm-10">         <button type="submit" class="btn btn-default" onclick="tsg_confirm()">确认</button>        </div>       </div>       <div class="form-group" style="float: left;margin-left: 30px">        <div class="col-sm-offset-2 col-sm-10">         <button type="submit" class="btn btn-default" onclick="tsg_cancle()">取消</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 class='list-group'></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 class='list-group-item' onclick='choise_one_template(this)'>" + data_complte + "</li></a>"          $(".list-group").append(html_style)         })        }        else if(code == "200000"){         $(".list-group").append("<li class='list-group-item'>没有找到合适的结果</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' class='btn btn-default template_data' aria-label='Left Align'><span class='glyphicon glyphicon-remove' aria-hidden='true' onclick='delete_template(this)'></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>

总结

以上所述是小编给大家介绍的基于jQuery使用Ajax动态执行模糊查询功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

  • 相关标签:jquery教程
  • 本文发布HTML5中文学习网 ,转载请注明出处,感谢您!
  • 相关文章


  • 曝网友假装外国人写投诉信 ofo秒退押金并回函致歉
  • 苹果市值缩水逾2000亿美元 遭多家投行下调目标价
  • Asp.net Core与类库读取配置文件信息的方法_实用技巧
  • asp.net在Repeater嵌套的Repeater中使用复选框详解_实用技巧
  • 利用IIS调试ASP.NET网站程序的完整步骤_实用技巧
  • Asp.Net Core轻松学习系列之配置文件_实用技巧
  • ASP.NET 页生命周期概述(小结)_实用技巧
  • 详解ASP.NET Core WebApi 返回统一格式参数_实用技巧
  • 2018年网络流行语有哪些?2018年十大网络流行语盘点
  • 华为首席财务官孟晚舟被暂扣 深圳市政府要求加方立即放人!
  • 独孤九贱(4)_PHP视频教程

    江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。 PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...

    独孤九贱(5)_ThinkPHP5视频教程

    ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...

    独孤九贱(1)_HTML5视频教程

    《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。 ...

    ThinkPHP5实战之[教学管理系统]

    本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。

    PHP入门视频教程之一周学会PHP

    所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...

    作者信息

    kevin

    永远在学习的路上!

    相关教程

  • javascript初级视频教程 javascript初级视频教程
  • jquery 基础视频教程 jquery 基础视频教程
  • javascript三级联动视频教程 javascript三级联动视频教程
  • 独孤九贱(3)_JavaScript视频教程 独孤九贱(3)_JavaScript视频教程
  • 独孤九贱(6)_jQuery视频教程 独孤九贱(6)_jQuery视频教程
  • 热门教程