layui select 绑定onchange事件失效

简介: layui select 绑定onchange事件失效问题处理

问题背景

在日常工作中,可能会用到页面freemaker以及layui前端框架,这个时候直接在select上面绑定onchange事件往往是不生效的,错误的方式

image.png

这种方式给select绑定的onchange事件是无法触发的,layui前端框架绑定事件需要使用lay-filter属性,就像这样

image.png

解决方案

就是像上述通过lay-filter的方式绑定select下拉框变动事件,然后在页面<script></script>内部通过form.on('select(getCourseCategoryList)',function (data) {});来实现具体的业务逻辑

<script>layui.use(['jquery', 'form'], function () {
var$=layui.jquery;
varform=layui.form;
form.on('select(getCourseCategoryList)',function (data) {
//得到select原始DOM对象//console.log(data.elem); //得到select id 属性//console.log(data.elem.id); //得到select name 属性//console.log(data.elem.name); //得到被选中的值//console.log(data.value);//得到美化后的DOM对象 //console.log(data.othis); varcourseTypeTwo=data.value;
//console.log(courseTypeTwo)$.ajax({
url: 'netschoolCourse/getCourseCategoryList',
type: 'post',
data:{'courseTypeTwo':courseTypeTwo},
async :false,
dataType: 'json',
success: function(data) {
vardictDatas=data.dictDatas;
//console.log(dictDatas)var$1=$("#courseCategory");
//$1.empty();//console.log($1.html())varhtml="<option value=''>--请选择--</option>";
$.each(dictDatas,function (index,item) {
html+="<option value='"+item.dictValue+"'>"+item.dictLabel+"</option>";
                    });
//console.log(html)$1.html(html);
form.render('select');
                }
            });
        });
    });
</script>

这里的业务逻辑是为了实现联动查询,当#courseTypeTwo的下拉框变动时异步加载数据并为#courseCategory补充option属性

image.png

以实现联动效果。

这里需要注意的是,在#courseCategory的option补充完成之后需要重新渲染一下select下拉框form.render('select');

还有就是除了上述的$1.html(html);给指定的select补充option,还可以通过$1.append(html);来追加补充,但是使用append的话需要开启$1.empty();这样保证每次给#courseCategory追加匹配的option,而不是一直追加,就像这样的错误情况

image.png

需要的小伙伴有问题可以评论区留言哈。



相关文章
|
容器
layui下拉多选框xm-select.js插件的使用
layui下拉多选框xm-select.js插件的使用
1546 0
Layui 内置方法 - layer.confirm(询问框)
Layui 内置方法 - layer.confirm(询问框)
2076 0
|
前端开发 JavaScript 数据库
layui联动菜单搜索select表单选项的设置方法
layui联动菜单搜索select表单选项的设置方法
1321 0
LayUI upload上传组件上传文件的两种方式
LayUI upload上传组件上传文件的两种方式
1457 0
【Layui】子页面向父级页面传递参数
【Layui】子页面向父级页面传递参数
1616 0
【Layui】子页面向父级页面传递参数
|
JavaScript
Layui数据表格嵌套文件上传按钮
Layui数据表格嵌套文件上传按钮
551 0
|
JavaScript 算法 前端开发
layui框架实战案例(16):xm-select下拉多选插件实战记录(远程搜索、过滤、翻页、单选、提示文字)
layui框架实战案例(16):xm-select下拉多选插件实战记录(远程搜索、过滤、翻页、单选、提示文字)
3792 0
|
JavaScript 前端开发
layui下拉框xm-select自定义搜索使用方法
【10月更文挑战第28天】`xm - select` 是基于 Layui 的下拉框增强插件,支持自定义搜索功能。实现步骤包括:1. 引入 Layui 和 xm - select 的核心文件;2. 创建下拉框的基本 HTML 结构;3. 使用 `layui.use` 函数初始化插件并配置搜索功能;4. 可选地进行高级自定义搜索优化,如模糊匹配、多字段搜索和实时更新数据。通过这些步骤,可实现灵活的下拉框搜索功能。
4446 1
【Layui】Layui下select下拉框不显示或没有效果
【Layui】Layui下select下拉框不显示或没有效果
|
JavaScript 前端开发 开发者
Layui layer 弹出层的使用【笔记】
本文介绍了Layui的layer弹出层组件的使用方法,包括如何通过在线CDN引入Layui的CSS和JS文件,以及如何使用layer.open(options)开启弹出层和layer.close(index)关闭弹出层。文章详细说明了弹出层类型的分类、options选项的参数配置,以及回调函数的使用。通过示例代码,展示了如何创建不同类型的弹出层,包括对话信息框、页面层、内联框架层、加载层和tips层。

热门文章

最新文章