layui 下拉框搜索支持value值搜索

在layui版本3.1.1的form.js中,找到了一行代码r=l.indexOf(e)===-1;,并将其替换为r=(l.indexOf(e)===-1&&i.attr('lay-value')!==e);,这一改动可能是为了增强条件判断,确保元素不在数组中且lay-value属性不等于特定值。这个优化可能提高了代码的逻辑准确性。

layui version: 3.1.1

找到 form.js , 搜索 r = l.indexOf(e) === -1; 
将 r = l.indexOf(e) === -1; 
替换为 r = (l.indexOf(e) === -1 && i.attr("lay-value") !== e); 

参考

### layui 下拉框搜索功能实现方法 在 Layui 框架中,可以通过 `lay-search` 属性来启用下拉框搜索功能。以下是具体的实现方式: #### HTML 结构 通过设置 `<select>` 标签并添加属性 `lay-search` 来开启搜索功能。此属性允许用户输入关键字筛选选项列表。 ```html <div class="layui-form-item"> <label class="layui-form-label">搜索下拉</label> <div class="layui-input-block"> <select id="searchInput" lay-filter="searchInput" lay-verify="required" class="layui-select" lay-search> <option value="">请选择</option> <!-- 动态加载的选项 --> </select> </div> </div> ``` 上述代码中的 `lay-search` 是关键属性[^1],它使得下拉框具备实时过滤的功能。 --- #### JavaScript 配置 为了使下拉框正常工作,需初始化表单组件并通过事件监听动态更新选项内容。 ```javascript layui.use(['form', 'jquery'], function() { var form = layui.form; var $ = layui.jquery; // 初始化数据(可以替换为 AJAX 请求获取) var optionsData = [ {value: '1', text: '选项一'}, {value: '2', text: '选项二'}, {value: '3', text: '选项三'} ]; // 渲染下拉框选项 var selectHtml = '<option value="">请选择</option>'; optionsData.forEach(function(item) { selectHtml += `<option value="${item.value}">${item.text}</option>`; }); $('#searchInput').html(selectHtml); form.render('select'); // 刷新渲染 // 监听下拉框变化事件 form.on('select(searchInput)', function(data) { console.log(data.value); // 获取选中的 }); }); ``` 以上代码展示了如何通过静态数组填充下拉框,并绑定选择事件[^1]。如果需要从服务器端动态加载数据,则可结合 AJAX 完成。 --- #### 处理动态数据加载 当需要从后台接口获取数据时,可通过 AJAX 加载并将返回的结果注入到下拉框中。 ```javascript $.ajax({ type: "POST", url: "/api/getOptions", // 替换为实际接口地址 dataType: "json", success: function(res) { if (res.code === 0) { // 假设成功状态码为 0 var data = res.data || []; var htmlStr = '<option value="">请选择</option>'; data.forEach(function(option) { htmlStr += `<option value="${option.value}">${option.label}</option>`; }); $('#searchInput').html(htmlStr); form.render('select'); // 更新渲染 } }, error: function(xhr, status, err) { console.error(err); } }); ``` 这段代码实现了从服务端请求数据并将其插入到下拉框的过程[^3]。 --- #### 解决常见问题 1. **下拉框无法显示** 如果发现下拉框未正确展示,请确认是否已引入必要的 CSS 和 JS 文件,并确保页面结构无误[^2]。 2. **搜索功能失效** 确认 `<select>` 标签中包含 `lay-search` 属性,以及是否调用了 `form.render()` 方法刷新组件[^1]。 --- ### 总结 通过配置 `lay-search` 属性和合理使用 Layui 的表单模块,能够轻松实现带搜索功能的下拉框。同时,借助 AJAX 可以灵活处理动态数据场景。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值