后台管理使用的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;
}
},
})