Layui select赋值并触发select事件

后台管理使用的layui。一次select手动赋值操作发现没有触发该select的选中事件,琢磨了下做如下操作即可。
写了个common.js常用操作的工具类,修改了赋值方法。

layui.define(['layer','form','laydate','dtree','carousel'],function (e) {
    let layer=layui.layer,form=layui.form,laydate=layui.laydate,dtree=layui.dtree,carousel=layui.carousel;
    e('common',{
		/**
         * 根据dom的id赋值/取值
         * @param id
         * @param value
         */
        byId:function(id,value){
            let tag=$("#"+id)[0].tagName;//获取该dom的标签类型
            switch (tag) {
                case "INPUT":
                    if(value){
                        $('#'+id).val(value);
                    }else{
                        return $('#'+id).val();
                    }
                    break;
                case 'SELECT'://如果为select标签
                    if(value){
                        let filter=$('#'+id).attr('lay-filter');//获取该元素的layui选择器,触发事件用
                        $('#'+id).val(value);//先赋值
                        filter&&layui.event('form','select('+filter+')',{elem:$("#"+id),value:value});//触发该标签的select事件
                    }else{
                        return $('#'+id).val();
                    }
                    break;
            }
        },
	})

你可能感兴趣的:(layui)