今天在做项目的时候遇到了一个棘手的问题,客户要求两个菜单联动,按理说我们可用直接用迅睿cms的联动菜单来完成,可是,后续我们还需要根据其中一个值的内容来判断一些问题,所以这里没法用联动菜单,而且迅睿cms的联动菜单如果加载了layui的js则会有bug,页面中会生成一个没有任何作用的空的选择器,把他隐藏掉还会导致原联动菜单的问题,而且联动菜单没有css,与其他内容很不协调,所以我们这里只能使用layui的select选择器。而数据来源则使用自定义链接。
思路很简单,首先利用layui的选择器选择事件,拿到当前内容的value。
因为,迅睿cms的自定义资料后端接口需要一个parent_id,也就是自定义链接的id,但有时候与我们选择框事件传过来的value不同,所以我们需要做一下判断,就是很笨的var一个字段,判断value等于几的时候给这个字段赋上指定值,很简单不细说了。
然后我们拿到第二级选择器的数据后,清空第二级选择器的内容,并利用拿到的数据构建新的html。
上图可以看到,layui根据代码渲染出dl和dd标签,并且css也全都在dd标签上,想当然的会清空dl标签内的内容,并添加dd标签,其实这样是错误的,如果你这样做了,那么与option中value值的不同的lay-value的值都不会被选中,正确做法是清空option的值并新建option的内容才能正确实现联动菜单的效果。
以下是代码:注意,最后千万不要忘记重新渲染lay的表单。
了解更多迅睿cms的问题点击这里。
上一篇: 迅睿cms的表单提交
下一篇: 在网页中使用SheetJS导出excel