layui select 绑定onchange事件失效

layui select 绑定onchange事件失效

问题背景

在日常工作中,可能会用到页面 freemaker 以及 layui 前端框架,这个时候直接在 select 上面绑定 onchange 事件往往是不生效的,错误的方式
在这里插入图片描述
这种方式给 select 绑定的 onchange 事件是无法触发的, layui 前端框架绑定事件需要使用 lay-filter 属性,就像这样
在这里插入图片描述

解决方案

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

<script>

    layui.use(['jquery', 'form'], function () {

        var $ = layui.jquery;

        var form = 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); 

            var courseTypeTwo = data.value;

            //console.log(courseTypeTwo)

            $.ajax({

                url: 'netschoolCourse/getCourseCategoryList',

                type: 'post',

                data:{'courseTypeTwo':courseTypeTwo},

                async :false,

                dataType: 'json',

                success: function(data) {

                    var dictDatas = data.dictDatas;

                    //console.log(dictDatas)

                    var $1 = $("#courseCategory");

                    //$1.empty();

                    //console.log($1.html())

                    var html = "<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属性
在这里插入图片描述
以实现联动效果。
这里需要注意的是,在#courseCategory的option补充完成之后需要重新渲染一下select下拉框form.render(‘select’);
还有就是除了上述的$1.html(html);给指定的select补充option,还可以通过$1.append(html);来追加补充,但是使用append的话需要开启$1.empty();这样保证每次给#courseCategory追加匹配的option,而不是一直追加,就像这样的错误情况
在这里插入图片描述
需要的小伙伴有问题可以评论区留言哈。

相关推荐

  1. 回车事件怎样

    2024-05-11 06:40:07       55 阅读
  2. Qt开发Charts折线图事件

    2024-05-11 06:40:07       59 阅读
  3. js中重复事件

    2024-05-11 06:40:07       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 06:40:07       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 06:40:07       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 06:40:07       87 阅读
  4. Python语言-面向对象

    2024-05-11 06:40:07       96 阅读

热门阅读

  1. haproxy配置安装,实现web服务器负载均衡

    2024-05-11 06:40:07       33 阅读
  2. Zephyr 使用问题记录

    2024-05-11 06:40:07       29 阅读
  3. 【八股系列】Loader和Plugin的区别是什么?

    2024-05-11 06:40:07       34 阅读
  4. ActiViz中计算图像梯度vtkImageGradient

    2024-05-11 06:40:07       34 阅读
  5. SpringBoot异步接口实现:提高系统的吞吐量

    2024-05-11 06:40:07       33 阅读
  6. web鉴权access_token、AK/SK、session/cookie

    2024-05-11 06:40:07       24 阅读
  7. vue中中文汉字转拼音的小工具

    2024-05-11 06:40:07       25 阅读
  8. 【外币兑换,简单贪心】

    2024-05-11 06:40:07       34 阅读