layui.form.select 实现可下拉 可搜索 可输入
提示:这里的输入需要手动选择一下输入的内容
文章目录
layui.form.select 实现可下拉 可搜索 可输入` 提示:这里的输入需要手动选择一下输入的内容` ![在这里插入图片描述](https://img-blog.csdnimg.cn/1f7f021c9ee343839449a0f4fd8d37fb.png)
前言一、实现方法二、使用步骤1.引入库 layui 的js 和css2.创建方法3.定义不变层的id 和 需要应用 layui.form.select 实现可下拉 可搜索 可输入 的select 的class
三、调用方法四、完整代码五、重点
前言
该方法只针对 layui v2.7.6 左右的版本
一、实现方法
捕获搜索框输入的内容 如果不存在则实时显示不存在的选项并添加进去
二、使用步骤
1.引入库 layui 的js 和css
2.创建方法
function 下拉可输入(root='is_body') {
// 依赖
const form = layui.form
const $ = layui.$
// 监听输入内容
$('#'+root+'').on('input', '.可输入可下拉可搜索 + .layui-form-select .layui-select-title input', function (event) {
let 输入框对象 = $(this)
let 输入内容 = 输入框对象.val();
let 根节点 = 输入框对象.parent().parent().parent()
let 假下拉容器 = 根节点.find('dl')
// 判断是否有匹配选项 没有就显示输入内容
if (假下拉容器.find('.layui-select-none').length > 0) {
if (假下拉容器.find('.is_select_text').length > 0) {
假下拉容器.find('.is_select_text').text(输入内容)
假下拉容器.find('.is_select_text').attr('lay-value', 输入内容)
} else {
假下拉容器.prepend(`
}
}
});
// 监听自定义选项被选中
$('#'+root+'').on('click', '.is_select_text', function () {
let 输入内容 = $(this).attr('lay-value')
let 根节点 = $(this).parent().parent().parent()
let 真下拉容器 = 根节点.find('select')
真下拉容器.append(``)
真下拉容器.val(输入内容);
form.render('select')
});
}
3.定义不变层的id 和 需要应用 layui.form.select 实现可下拉 可搜索 可输入 的select 的class
代码如下(示例):
上述代码的要求是 元素自身不会发生变动 而且必须是id 如果需要使用其他方式请修改 方法的代码
类必须定义到 经过layui-form渲染过的 无论什么方式都行 类命指定位’可输入可下拉可搜索‘ 如果需要使用其他方式请修改 方法的代码
三、调用方法
let 不变元素id = 'is_body'
下拉可输入(不变元素id)
四、完整代码
function 下拉可输入(root = 'is_body') {
// 依赖
const form = layui.form
const $ = layui.$
// 监听输入内容
$('#' + root + '').on('input', '.可输入可下拉可搜索 + .layui-form-select .layui-select-title input', function (event) {
let 输入框对象 = $(this)
let 输入内容 = 输入框对象.val();
let 根节点 = 输入框对象.parent().parent().parent()
let 假下拉容器 = 根节点.find('dl')
// 判断是否有匹配选项 没有就显示输入内容
if (假下拉容器.find('.layui-select-none').length > 0) {
if (假下拉容器.find('.is_select_text').length > 0) {
假下拉容器.find('.is_select_text').text(输入内容)
假下拉容器.find('.is_select_text').attr('lay-value', 输入内容)
} else {
假下拉容器.prepend(`
}
}
});
// 监听自定义选项被选中
$('#' + root + '').on('click', '.is_select_text', function () {
let 输入内容 = $(this).attr('lay-value')
let 根节点 = $(this).parent().parent().parent()
let 真下拉容器 = 根节点.find('select')
真下拉容器.append(``)
真下拉容器.val(输入内容);
form.render('select')
});
}
let 不变元素id = 'is_body'
下拉可输入(不变元素id)
五、重点
创建方法(可根据自身需求修改 只提供一个思路)不变元素id 就是自身不会发生变动的元素的id并且这个元素一定要在指定的select外面 (layui的弹窗一般放在body的第一层 你可能会出现在正文内容定义了is_body的id 但是弹窗的代码在body的第一层 导致弹窗中的select 所以要留心一下)class=“可输入可下拉可搜索” 或者class包含“可输入可下拉可搜索” 的 select 一定是经过layui渲染的 无论是顶部的layui-form还是layui-form-select都可以
相关文章
本文由 用户 于 2024-04-01 发布在 金钥匙,如有疑问,请联系我们。
本文链接:https://www.51969.com/post/18709286.html
发表评论