效  果:

因为需要做一个搜索出现下拉然后点击 自动填装input 内容的 东西。

一开始使用lay-search 的控件去弄。 但是无法控制里面的内容。所以用了一些笨方法去弄

废话不说了,

html部分:


<div  >
                    <input type="text" name="HandoverCompany" id="HandoverCompany" onchange="checkInputValueLow(this)" class="layui-input" placeholder="请输入检查单位" style="position:absolute;z-index:2;width: 78%;border-right: 0px;" lay-verify="required" value="" onkeyup="search()" autocomplete="off">
                    <select type="text" id="hc_select" lay-filter="hc_select" autocomplete="off" placeholder="移交单位全称" lay-verify="required" class="layui-select" lay-search>
                        
                    </select>
                </div>


css部分:


.border-left-st{
border-left:1px solid red;
}
.border-top-st{
border-top:1px solid red;
}
.border-bottom-st{
border-bottom:1px solid red;
}

.borderRed{
border:1px solid red;
}


js+layui部分:


layui.use(['form', 'layedit', 'laydate'], function(){

var form = layui.form
      ,layer = layui.layer
      ,layedit = layui.layedit
      ,laydate = layui.laydate;
      
   
    
      form.on('select(hc_select)', function (data) {   //选择移交单位 赋值给input框
          console.log(data);
            console.log(optionValue[data.value].regAddress);
          $("#HandoverCompany").val(optionValue[data.value].enterpriseName);
          $("#enterpriseAddress").val(optionValue[data.value].regAddress);
          $("#enterpriseId").val(optionValue[data.value].enterpriseId);
          
          $("#hc_select").next().find("dl").css({ "display": "none" });
          form.render();
      });
        
      window.search = function () {
          var value = $("#HandoverCompany").val();
          $("#hc_select").val(value);
          console.log(value)
          form.render();
          
          $("#hc_select").next().find("dl").css({ "display": "block" });
          var dl = $("#hc_select").next().find("dl").children();
          var j = -1;
          for (var i = 0; i < dl.length; i++) {
              if (dl[i].innerHTML.indexOf(value) <= -1) {
                  dl[i].style.display = "none";
                  j++;
              }
              if (j == dl.length-1) {
                  $("#hc_select").next().find("dl").css({ "display": "none" });
              }
          }
          
      }
   //一定要用延迟  不然会选取不到内容
      $("#HandoverCompany").blur(function(){
          setTimeout(
              function(){$("#hc_select").next().find("dl").css({ "display": "none" });},100
              )
        });
      $("#HandoverCompany").focus(function(){
          $("#hc_select").next().find("dl").css({ "display": "block" });
        });

});

控制显示等部分


function addProblemCol(){
      $("#problemTable").append('<tr><td onclick="cutProblemCol(this)" class="cutPotiner">移除问题</td><td><input type="text" name="problemInfo" id="problemInfo"  lay-verify="problemInfo" autocomplete="off" placeholder="请输入问题详情" class="layui-input addProblemCount" maxlength="60" ></td</tr>')
  }
  function cutProblemCol(obj){
       $(obj).parent().remove();
  }
  function checkInputValue(obj){
        if($(obj).val()!='')
        {
            $(obj).removeClass("borderRed");
        }
    }
  function checkInputValueLow(obj){
       $(obj).removeClass("border-left-st");
       $(obj).removeClass("border-bottom-st");
       $(obj).removeClass("border-top-st");
       $("input").each(function(index,element){
            
           if(index ==1)
           {
               //$(element).attr("border","none");
           }
       })
  }

$("#HandoverCompany").on('compositionstart',function(){
    keyFlag = false;
})
$('#HandoverCompany').on('compositionend',function(){
    keyFlag = true;
})

判断输入状态调取后台部分


var optionValue = [];
  $("#HandoverCompany").on('input',function(){
              var value = $("#HandoverCompany").val();
              console.log("123123123");
              if(value.length>2 && keyFlag )
                 {
                  console.log(value.length)
                  console.log(keyFlag)
                  $.ajax({
                      type:"post",
                      url:"写入自己后台的地址",
                       cache:false,
                      async:true,
                      data:{你的参数},
                      success:function(data){
                               $("#hc_select").empty();
                              optionValue=[];
                               $(data).each(function(index,element){
                                  optionValue.push(element);
                               $("#hc_select").append('<option value='+index+'>'+element.enterpriseName+'</option>');
                               });
                          }
                      });
                 }
          });

提交判断看情况。 因为这里是使用的parent.xxx.open,弹窗在最上层 , 常规判断 不变就是提示的部分改了


if($(enterpriseName).val()==null || $(enterpriseName).val().trim()=='')
                   {
                    parent.layer.msg("请输入被检查单位名称");
                    //非主流写法  不可再用...  需要确定input的位置不会变  
                    $(inputTag).each(function(index,element){
                        if(index == 0)
                           {
                            $(element).addClass("border-left-st");
                            $(element).addClass("border-top-st");
                            $(element).addClass("border-bottom-st");
              
                            
                           }
                        if(index==1)
                           {
                            $(element).addClass("borderRed");
                           }
                    });
                    return  false;
                   }


使用jquery+layui 做一个输入搜索下拉 类似lay-search的更多相关文章

  1. layui-table-column-select(layui数据表格可搜索下拉框select)

    layuiTableColumnSelect 在layui table的基础上对表格列进行扩展:点击单元格显示可搜索下拉列表. 码云地址:https://gitee.com/yangqianlong9 ...

  2. jquery+php实现用户输入搜索内容时自动提示

    index.html <html> <head>     <meta charset=;} #search_auto li a:hover{background:#D8D ...

  3. 利用jquery+iframe做一个ajax上传效果

    以下是自学it网--中级班上课笔记 网址:www.zixue.it html页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict ...

  4. jQuery实现一个淡入淡出下拉菜单 非常简易

    前段时间我一直在向大家推荐CSS3和HTML5的东西,尽管看上去很炫,但也有不少网友抱怨兼容性问题,所以今天开始我也会陆续向大家介绍一些兼容性较好的jQuery插件.今天先分享一款利用jQuery实现 ...

  5. Ajax跨域实现淘宝/百度搜索下拉提示效果

    最近学到Ajax,觉得自己对与前后端的数据交互有了一个基本的了解.下面是Ajax应用到淘宝/百度的搜索功能的一个简单的小实例,就是输入一个词,下拉框中自动显示匹配的内容:

  6. ComboBox可搜索下拉框的使用注意事项,简单记录以及我遇到的一些奇怪的bug

    前几天做一个react的项目的时候需要用一个可搜索的下拉框ComboBox,上代码: <ComboBox // className={comboxClassName} items={storeA ...

  7. 第二百二十七节,jQuery EasyUI,ComboTree(树型下拉框)组件

    jQuery EasyUI,ComboTree(树型下拉框)组件 学习要点: 1.加载方式 2.属性列表 3.方法列表 本节课重点了解EasyUI中ComboTree(树型下拉框)组件的使用方法,这个 ...

  8. 第二百二十四节,jQuery EasyUI,ComboGrid(数据表格下拉框)组件

    jQuery EasyUI,ComboGrid(数据表格下拉框)组件 学习要点: 1.加载方式 2.属性列表 3.方法列表 本节课重点了解 EasyUI 中 ComboGrid(数据表格下拉框)组件的 ...

  9. 雷林鹏分享:jQuery EasyUI 表单 - 创建树形下拉框

    jQuery EasyUI 表单 - 创建树形下拉框 树形下拉框(ComboTree)是一个带有下列树形结构(Tree)的下拉框(ComboBox).它可以作为一个表单字段进行使用,可以提交给远程服务 ...

  10. Jquery ajax 绑定multiselect多选下拉选项,同时异步执行返回值

    Jquery ajax 绑定multiselect多选下拉选项,同时异步执行获取返回值 function load(mslt_employees,belongto,mark) {//传入$(#ID) ...

随机推荐

  1. STP理论基础

    目的 防止二层环路及防止环路造成的广播风暴以及引起的MAC表震荡 方法 首先,所有配置了STP的交换机互相向相邻交换器(配置了STP的)发送BPDU(协议数据单元),选举根桥(根交换机),根交换机上所 ...

  2. hive中时间-日期函数的用法

    current_date:获取当前日期 用法:select current_date: 输出:2020-12-04 unix_timestamp:获取当前unix时间戳 用法:select unix_ ...

  3. ubuntu 20.04使用kubeadm安装k8s集群

    本文主要用于记录,步骤参考了:https://blog.csdn.net/weixin_44559544/article/details/123381441 一.设备相关准备 1.修改节点主机名,这样 ...

  4. 05 Java 数组

    Java 数组 一.什么是数组 数组是相同类型数据的有序集合 数组描述的是相同类型的若干个数据,按照一定的顺序排列组合而成 其中每一个数据称为数组元素,每个数组元素可以通过下标来访问它们 二.数组的声 ...

  5. http 1.0、2.0、3.0 之间的区别

    首先是HTTP协议: HTTP 是 HyperText Transfer Protocol(超文本传输协议)的缩写,它是互联网上应用最为广泛的一种网络协议,所有 WWW 文件都必须遵守这个标准.其他的 ...

  6. wireshark抓包海康威视摄像头

    1:不清楚海康威视摄像头IP地址:网线直连电脑,打开wireshark抓包 2:抓包在source能看到  Hangzhou类似   说明是摄像头.ARP协议  然后192.168.0.251 是摄像 ...

  7. 2022NCTF

    是真的菜 开始复现把 calc 访问之后获得源码 @app.route("/calc",methods=['GET']) def calc(): ip = request.remo ...

  8. Delphi 从字符串中提取数字

    function GetNumberFromStr(strIn: string; sFlag: string): string; var i: Integer; tempStr: string; be ...

  9. php实现无限极分类

    1.无限极分类 //处理父子级 private function getChildBak($data,$parent_id = 0){ $arr=array(); $i = 0; foreach($d ...

  10. 疾速瓜牛 Linux三剑客 之 sed学习与应用

    sed, 是stream editor的缩写,顾名思义,就是个非交互式行编辑器,有以下特点: 它能执行与编辑器 vi 和 ex 相同的编辑任务 sed 编辑器没有提供交互式使用方式,使用者只能在命令行 ...