jQuery借鉴layui实现可搜索下拉列表(有值才显示筛选出的列表)
以下是一个使用jQuery和layui实现的可搜索下拉列表的简单示例。这个示例展示了如何在用户输入搜索条件后,动态筛选出下拉列表中的选项并显示。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery借鉴layui实现可搜索下拉列表</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layui-src/dist/css/layui.css" media="all">
</head>
<body>
<div class="layui-form">
<select id="searchable-select" lay-filter="test">
<option value="">选择或搜索</option>
<option value="1">选项1</option>
<option value="2">选项2</option>
<option value="3">选项3</option>
<option value="4">选项4</option>
<option value="5">选项5</option>
<!-- 更多选项 -->
</select>
</div>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/layui-src/dist/layui.all.js"></script>
<script>
$(document).ready(function(){
var $select = $('#searchable-select');
layui.use(['form', 'laysearch'], function(){
var form = layui.form;
var laysearch = layui.laysearch;
// 初始化搜索框
laysearch.render({
elem: $select[0], // 指定原始select元素
filter: function(res){
// 过滤选项
var matchMod = new RegExp(res, 'i');
$select.find('option').each(function(){
var text = $(this).text();
if(matchMod.test(text)){
$(this).show();
} else {
$(this).hide();
}
});
form.render('select'); // 更新 layui 下拉框
}
});
// 表单提交事件监听
form.on('select(test)', function(data){
console.log(data.value); // 获取选中的值
});
});
});
</script>
</body>
</html>
在这个示例中,我们使用了layui的laysearch
模块来创建一个搜索框,它会根据用户的输入来过滤原始的select
元素中的选项。每次输入变更时,都会执行filter
函数,并通过正则表达式来匹配选项文本。匹配的选项将被显示,而不匹配的选项则会被隐藏。最后,使用form.render('select')
更新下拉框的显示,以反映筛选后的结果。
评论已关闭