Layui 地区三级联动与表单渲染实现

作者:资源驿站

时间:2026-10-23

浏览:97

本文介绍基于 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 渲染的完整实现过程,供开发者参考。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章