PHP 使layui用三级联动省市区插件 在script标签内不生效问题

Olathe ·
更新时间:2024-11-10
· 933 次阅读

解决 使layui用三级联动省市区插件 在script标签内不生效问题

layui省市区三级联动下拉选择器插件下载地址

插件使用方法在上面地址里面有文档,这里举不多说了

这里主要记录一下自己使用的时候遇到的坑

我这里需求是做一个弹出层,做编辑添加,操作,然后里面需要选择省市区,去layui组件市场,下载使用了这个插件

一开始以为可以按照文档的用法,直接调用就ok的,但是事实证明,还是年轻了

话不多说,先上代码…

地址*

请选省份
//配置插件目录 layui.config({ base: '/mods/mods/' , version: '1.0' }); layui.use(['table', 'form', 'layarea'], function(){ // 加载模块 var $ = layui.jquery, form = layui.form, table = layui.table, layarea = layui.layarea, layer = layui.layer; layarea.render({ elem: '#area-picker', // data: { // province: '广东省', // city: '深圳市', // county: '龙岗区', // }, change: function (res) { //选择结果 console.log(res); } }); });

但是发现最后的效果是这样的,各省市区不显示出来

后面经过排查发现,因为我们插件渲染的时候,先加载了js,在script标签内的id获取不到,导致渲染不出来!

经过多次尝试,比如调加载顺序,把script标签换成

,虽然换成隐藏属性的div,插件省市区不显示问题是解决了,但是在使用layui form.val()方法获取表单修改过的数据,却获取不到,最后解决方法如下

layer.open({ type: 1, area: '70%', title: '编辑经销商/门店信息', content: $('#editAgcy').html(), //这里content是一个普通的String btn: ['确认', '取消'], shadeClose: true, btn1:function() { var res = form.val("editfrom"); $.post("{{url('Back/UpdateManager')}}", {res:res}, function(data){ if (data.code == 200) { var icon = 1; } else { icon = 2; } layer.msg(data.msg,{icon:icon,time:1000},function(){ layer.closeAll(); table.reload('listTable',{//编辑完重载表格数据 }); }); }) }, btn2:function(){ layer.closeAll() }, success: function () { layarea.render({ elem: '#area-picker', // data: { // province: '广东省', // city: '深圳市', // county: '龙岗区', // }, change: function (res) { //选择结果 console.log(res); } }); form.render(); }, });

其实就是把这个方法放在弹出层成功后再重新进行一次表单渲染

success: function () { layarea.render({ elem: '#area-picker', // data: { // province: '广东省', // city: '深圳市', // county: '龙岗区', // }, change: function (res) { //选择结果 console.log(res); } }); form.render(); },

最终效果图就是大功告成了
在这里插入图片描述

解决 使layui用三级联动省市区插件 在script标签内不生效问题
作者:简~约



script 插件 级联 PHP

需要 登录 后方可回复, 如果你还没有账号请 注册新账号