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

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



相关文章
|
2月前
|
JavaScript
VUE中el-input阻止冒泡防止触发父级事件
VUE中el-input阻止冒泡防止触发父级事件
|
3月前
|
JavaScript 前端开发
怎样在vue中隐藏el-form-item中的值、设置输入框的值是只读
这篇文章介绍了在Vue框架中使用Element UI组件库时,如何通过v-if指令和v-model绑定来控制`el-form-item`的显示与隐藏,以及如何通过设置`readonly`属性让输入框变为只读状态。
怎样在vue中隐藏el-form-item中的值、设置输入框的值是只读
|
4月前
|
JavaScript
element-ui 在vue中el-input输入框的autofocus属性失效【解决方案】
element-ui 在vue中el-input输入框的autofocus属性失效【解决方案】
242 1
|
6月前
oninput事件和onchange事件的区别?
oninput事件和onchange事件的区别?
ElementUI表单校验trigger设为change无效问题
ElementUI表单校验trigger设为change无效问题
433 0
el-input-number阻止外层button的冒泡
el-input-number阻止外层button的冒泡
143 0
|
JavaScript
el-select下拉多选框 el-select 设置默认值不可删除功能
Element-UI是一款广泛使用的Vue.js组件库,其中El-Select下拉多选框组件在实际项目开发中经常被使用。然而,在Element 3.0版本中,El-Select下拉多选框默认值可被删除,这可能会导致一些意外情况。本文将介绍如何解决这个问题,实现El-Select下拉多选框设置默认值不可删除的功能。
668 0
el-select下拉多选框 el-select 设置默认值不可删除功能
【element-ui用法】el-radio-group默认选择和数据回显问题的解决方案
【element-ui用法】el-radio-group默认选择和数据回显问题的解决方案
717 0
|
JavaScript 前端开发
Vue——04-02v-model的使用原理、结合radio、checkbox、checkbox(多选)、checked(值的绑定)、select以及修饰符的使用
v-model的使用原理、结合radio、checkbox、checkbox(多选)、checked(值的绑定)、select以及修饰符的使用
173 0
|
前端开发
click事件无法触发、div存取数值
.项目中遇到的问题,button的click无法触发,点击按钮,断点都没有走到click里面。那就是click方法没有被触发,那就需要绑定事件。
213 0