Layui 地区三级联动与表单渲染实现
作者:资源驿站时间:2026-10-23 11:35:04浏览:98
本文介绍基于 Layui 框架实现城市地区三级联动的具体方法。通过 HTML 定义省份与城市下拉框,利用 jQuery 获取后端 JSON 数据,在 layui.use 中初始化并加载省份列表。核心在于使用 layui.form.render('select') 方法刷新控件状态,确保动态选项生效,同时演示了如何根据后台数据默认选中指定城市及证件类型。
Layui 地区三级联动与表单渲染实现
具体实现代码如下所示:
HTML 结构部分
HTML 结构定义
<!-- 城市三级联动 -->
<div class="layui-form-item">
<label class="layui-form-label require_start"><span>所在城市 :</span></label>
<div class="layui-input-inline">
<select id="province" name="province" lay-filter="province">
<option id="province_init" value="0-0">请选省份</option>
</select>
</div>
<div class="layui-input-inline">
<select id="city" name="city" lay-filter="city">
<option id="city_init" value="0-0">请选择市</option>
</select>
</div>
</div>
JavaScript 逻辑部分
JavaScript 联动逻辑
// 初始数据
var areaData = <?php echo json_encode($cities); ?>;
var $form;
var form;
var $;
layui.use(['jquery', 'form'], function() {
$ = layui.jquery;
form = layui.form;
$form = $('form');
loadProvince();
console.log(areaData);
var pi = 0;
for (var index in areaData) {
if (areaData[index]['provinceCode'] == {{ $assset_auth->province or 0 }}) {
var proid = {{$assset_auth->province}};
console.log(proid+'---proid') //当前是355
var province_value = areaData[index]['provinceCode']+'_'+areaData[index]['mallCityList'].length+'_'+pi;
console.log(province_value+'--------province_value') //当前是 355_1_42
$("#province").find("option[value='"+province_value+"']").attr("selected", true);
// 载入city
loadCity(areaData[index]['mallCityList']);
var ci = 0;
for (var ci in areaData[index]['mallCityList']) {
if (areaData[index]['mallCityList'][ci]['cityCode'] == {{ $assset_auth->city or 0 }}) {
var city_value = areaData[index]['mallCityList'][ci]['cityCode']+'_0_'+ci;
$("#city").find("option[value='"+city_value+"']").attr("selected", true);
}
ci++;
}
}
pi++;
}
layui.form.render('select','boardFilter');
});
此外,还包含选择证件类型时的行内判断逻辑
证件类型选择逻辑
<!-- 选择证件类型行内判断 -->
<div class="layui-form-item">
<label class="layui-form-label"><span>证件类型 :</span></label>
<div class="layui-input-inline">
<select name="card_category">
<option value="" selected>请选证件类型</option>
<option value="1" {{ $param!==NULL ? ($assset_auth->card_category==1 ? 'selected' : '') : '' }}>身份证</option>
<option value="2" {{ $param!==NULL ? ($assset_auth->card_category==2 ? 'selected' : '') : '' }}>军官证</option>
<option value="3" {{ $param!==NULL ? ($assset_auth->card_category==3 ? 'selected' : '') : '' }}>护照</option>
<option value="4" {{ $param!==NULL ? ($assset_auth->card_category==4 ? 'selected' : '') : '' }}>港澳通行证</option>
<option value="5" {{ $param!==NULL ? ($assset_auth->card_category==5 ? 'selected' : '') : '' }}>台胞证</option>
</select>
</div>
</div>
总结关键步骤
在后台 PHP 开发中,需从数据库加载字段以实现默认选中某一城市的功能
关键渲染步骤
核心操作在于调用 layui.form.render('select','boardFilter') 以刷新下拉框
以上即为 Layui 地区三级联动及 form select 渲染的完整实现过程,供开发者参考。
作者最新文章
JS中使用位运算(~~)和一元加号(+)快速转换字符串为整数
2026-11-03 22:41:12
怎么使用命令行批量格式化项目中的JS文件
2026-11-03 19:04:42
JS代码美化后报错怎么办?常见格式化冲突解决方法
2026-11-03 18:47:01
不用moment.js,怎么用原生JS Intl API格式化时间戳
2026-11-03 18:10:30
原生JS与dayjs获取当前日期的代码对比
2026-11-03 17:57:26
