解决layui扩展select — formselects (使用的formSelects-v4)本地数据过滤(查询)后全选,勾选了全部的问题
这个问题是layui通病bug,网上搜索了也没找到解决的办法,最后经过自己的不断摸索,终于捣鼓出来的解决办法
下面的操作都在 layui.use…里面进行的,
var formSelects =layui.formSelects;
formSelects.btns( product , [ select , remove ], {show: name });
// 在这里调用自定义的处理方法
// 自定义处理方法(解决搜索后点击全选bug问题)-路径在res/js/common_form.js
cumHandle( product ,formSelects); // 这是自定义的方法(抽离出来方便引用,也可以放独立的js供全局引用)
// 搜索多选-处理的函数 selectName为xm-select的值,formSelects为 layui.formSelects对象;
function cumHandle(selectName, formSelects) {
var isSearchVal =false;
// 解决搜索后多选会选全部数据的问题
formSelects.filter(selectName,function(id,inputVal,val) {
// 如果搜索文案存在时
if (val.name.indexOf(inputVal) != -1) {
val.isHidden =false;// 是否隐藏
isSearchVal =true;// 记录是否是过滤得到的值
return false;
}
val.isHidden =true;// 记录被过滤的(隐藏标识)
return true;// 返回true,不会显示
})
formSelects.on(selectName,function (id,vals,val){
// 如果是隐藏的并且isSearchVal=true时,return false阻止选中
if (val.isHidden &&isSearchVal)return false;
})
formSelects.opened(selectName,function() {
// select打开时,设置isSearchVal为false,此时选中不作限制
isSearchVal =false;
})
}
直接上图:

看看我这块leyui页面的写法(搜索过滤是通过本地搜索,并非远程搜索),上图:






![[C++探索之旅] 第一部分第十一课:小练习,猜单词 - 鹿快](https://img.lukuai.com/blogimg/20251015/da217e2245754101b3d2ef80869e9de2.jpg)










暂无评论内容