功能需求:select框可以自己输入,就是在下拉列表里找不到自己想要的选项就可以自己输入,同时还要支持模糊匹配功能

html代码:

样式:

 <style>
.select-search-input {
position: absolute;
z-index: 2;
width: 80%;
}
</style>

select部分:

 <div class="layui-form-item layui-inline">
<label class="layui-form-label" style="width:60px;">用户列表</label>
<div class="layui-input-inline" style="width:150px;">
<input type="text" name="selectInputUser" id="selectInputUser" class="layui-input select-search-input" value="" onkeyup="search();" autocomplete="off">
<select name="user_id" id="selectUser" lay-filter="selectUser" autocomplete="off" class="layui-select" lay-search>
<option value="">-不限-</option>
<option value="1">张三</option>
<option value="2">李四</option>
<option value="3">王二麻子</option>
</select>
</div>
</div>

其中input的几个style样式简单说一下:
position:absolute:在这里是让input和select在同一位置。
z-index:2 是为了让input在select上面。
width:80% 是为了不盖住select后面的小三角符号,select还可以点击。
autocomplete="off" 为了不自动填充input框,免得压盖select选项

JS代码:

 layui.use(['form', 'layedit','upload'], function () {
var form = layui.form
form.on('select(selectUser)', function (data) { //选择并赋值给input框
// value:data.value
// 文本:data.elem[data.elem.selectedIndex].text;
var txt = data.elem[data.elem.selectedIndex].text;
$("#selectInputUser").val(txt);
$("#selectUser").next().find("dl").css({ "display": "none" });
form.render();
}); window.search = function () {
var value = $("#selectInputUser").val();
$("#selectUser").val(value);
form.render();
$("#selectUser").next().find("dl").css({ "display": "block" });
var dl = $("#selectUser").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) {
$("#selectUser").next().find("dl").css({ "display": "none" });
}
}
}
});

done!

layui select配合input实现动态模糊搜索的更多相关文章

  1. layui select 下拉框 级联 动态赋值 与获取选中值

    //下拉框必须在 class="layui-form" 里 不然监听事件没有作用 <div class="layui-form" > <div ...

  2. jQuery形式可以计算,它包含了无线电的变化价格,select价格变化,删除行动态计算加盟

    jQuery能够计算的表单,包含单选改变价格,select改变价格,动态加入删除行计算 各种表单情况的计算 演示 JavaScript Code <script type="text/ ...

  3. vue2.0结合Element实现select动态控制input禁用

    今天有一个盆友问小颖,怎么实现用select动态控制input禁用,也就是说,input默认是可编辑的,但是每当我选一次select,input就会变成禁用,虽然小颖不知道她为什么这样做,因为小颖觉得 ...

  4. layui 根据根据后台数据动态创建下拉框并同时默认选中

        第一步 form表单里写好一个下拉框 <div class="layui-form-item"> <label class="layui-for ...

  5. vue教程3-03 vue组件,定义全局、局部组件,配合模板,动态组件

    vue教程3-03 vue组件,定义全局.局部组件,配合模板,动态组件 一.定义一个组件 定义一个组件: 1. 全局组件 var Aaa=Vue.extend({ template:'<h3&g ...

  6. js进阶 9-11 select选项框如何动态添加和删除元素

    js进阶 9-11 select选项框如何动态添加和删除元素 一.总结 一句话总结: 二.js进阶 9-11 select选项框如何动态添加和删除元素 1.案例说明 2.相关知识 Select 下拉列 ...

  7. jQuery Validate input是动态变化的

    表单验证 $("#dataList").append("<div id='data"+dataNum+"' style='padding-top ...

  8. iScroll滚动区域中select、input、textarea元素无法点击的Bug修复

    最近在一个项目中使用了iScroll4模拟滚动效果,调试过程中发现一个表单页中的所有表单项都无法点击聚焦, 如<select>.<input>.<textarea> ...

  9. struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input

    原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1     function dosearch() {2         if ($(&q ...

随机推荐

  1. 使用numpy与matplotlib.pyplot画图

    使用numpy与matplotlib.pyplot画图 1. 折线图 1 # -*- enccoding:utf-8 -*- 2 import numpy as np 3 import matplot ...

  2. eclipse调试远程tomcat

    1.设置tomcat远程调试端口 catalina.sh export JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,susp ...

  3. 棋盘(noip2017普及组)

    题目描述 有一个m \times mm×m的棋盘,棋盘上每一个格子可能是红色.黄色或没有任何颜色的.你现在要从棋盘的最左上角走到棋盘的最右下角. 任何一个时刻,你所站在的位置必须是有颜色的(不能是无色 ...

  4. JavaScript的popup框

    JavaScript中可以创建三种消息框:警告框.确认框.提示框. 1.警告框 警告框经常用于确保用户可以得到某些信息. 当警告框出现后,用户需要点击确定按钮才能继续进行操作. 语法:alert(&q ...

  5. 注意&&前后两个表达式有顺序的差别

    //插入排序 public static void insertSort(int[] arr) { // 遍历所有数字 for (int i = 1; i < arr.length; i++) ...

  6. 一些面试题(关于string的)

    一些常见的面试题: String a = "hello2"; String b = "hello" + 2; System.out.println(a == b ...

  7. C语言链表:删除有序链表中大于mink小于maxk的元素

    #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #define LEN sizeof( ...

  8. win10下安装mongodb

    环境 :win10  mongodb-win32-x86_64-v3.4-latest.zip 1.下载地址:https://www.mongodb.com/download-center/commu ...

  9. 赚钱快的app

    赚钱快的app目前强力推荐6款都是很不错的 宝石星球下载地址:http://www.baoshixingqiu.com/redPacket?key=548341 雪梨网APP下载地址 http://w ...

  10. 关于TCP和MQTT之间的转换(转载)

    现在物联网流行的就是MQTT 其实MQTT就是在TCP的基础上建立了一套协议 可以看这个,本来我自己想用Wireshark监听一下,不过百度一搜索一大把,我就不测试了 https://blog.csd ...