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