layui 地区三级联动 form select 渲染

本文介绍了一个使用layui框架实现的城市三级联动功能,通过PHP加载数据库字段让某个城市默认被选中,并展示了具体的HTML和JS代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>

js

// 初始数据
    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');
    });

这是select 选择证件 额外赠送

<!-- 选择证件类型行内判断 -->

    <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是一款简洁易用的前端UI框架,在layui中提供了三级联动下拉框的组件。三级联动下拉框即将三个下拉框进行联动,第一个下拉框选择一个项后,第二个下拉框根据第一个下拉框的选项动态展示相应的选项,第三个下拉框同理。 使用layui三级联动下拉框非常简单,在HTML中,我们需要定义三个select元素,以及它们各自的id和class属性,如下所示: ```html <select name="province" id="province" lay-filter="province"> <option value="">请选择省份</option> <!-- 省份选项 --> </select> <select name="city" id="city" lay-filter="city" disabled> <option value="">请选择城市</option> <!-- 城市选项 --> </select> <select name="area" id="area" lay-filter="area" disabled> <option value="">请选择县/区</option> <!-- 县/区选项 --> </select> ``` 在JavaScript中,我们需要引用layui和对应的模块,如form模块和jquery库。接着,我们可以通过layuiform.on(事件, 回调函数)方法监听每个下拉框的change事件,并在回调函数中编写对应的联动代码,如下所示: ```javascript layui.use(['jquery', 'form'], function(){ var $ = layui.jquery, form = layui.form; //监听省份下拉框的change事件 form.on('select(province)', function(data){ //动态获取城市数据 //省份value值 var value = data.value; //发送ajax请求,获取对应的城市数据 $.get('url', {provinceId: value}, function(res){ //将城市选项插入到城市下拉框中 var options = '<option value="">请选择城市</option>'; for(var i=0; i<res.length; i++){ options += '<option value="'+res[i].id+'">'+res[i].name+'</option>'; } $('#city').html(options); //更新渲染 form.render(); //启用城市下拉框 $('#city').prop('disabled', false); }); //清空县/区下拉框 $('#area').html('<option value="">请选择县/区</option>'); //禁用县/区下拉框 $('#area').prop('disabled', true); }); //监听城市下拉框的change事件 form.on('select(city)', function(data){ //动态获取县/区数据 //城市value值 var value = data.value; //发送ajax请求,获取对应的县/区数据 $.get('url', {cityId: value}, function(res){ //将县/区选项插入到县/区下拉框中 var options = '<option value="">请选择县/区</option>'; for(var i=0; i<res.length; i++){ options += '<option value="'+res[i].id+'">'+res[i].name+'</option>'; } $('#area').html(options); //更新渲染 form.render(); //启用县/区下拉框 $('#area').prop('disabled', false); }); }); }); ``` 这样,就实现了一个简单的三级联动下拉框。需要注意的是,动态获取数据的方式可能因项目而异,此处仅提供一个简单的示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值