基于Layui form组件的省市区级联下拉框选择

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>基于 Layui form 组件的省市区级联的实现</title>
    <link rel="stylesheet" href="layui/css/layui.css" />
</head>
<body>
    <div style="margin: 50px auto; ">
        <form class="layui-form">
            <div class="layui-form-item">
                <label class="layui-form-label">选择地区</label>
                <div class="layui-input-inline">
                    <select name="province" lay-filter="province">
                        <option value="">请选择省</option>
                    </select>
                </div>
                <div class="layui-input-inline" style="display: none;">
                    <select name="city" lay-filter="city">
                        <option value="">请选择市</option>
                    </select>
                </div>
                <div class="layui-input-inline" style="display: none;">
                    <select name="area" lay-filter="area">
                        <option value="">请选择县/区</option>
                    </select>
                </div>
            </div>
        </form>
    </div>
    <script type="text/javascript" src="layui/layui.js"></script>
    <script type="text/javascript" src="area.js"></script>
    <script>
        //初始数据
        var areaData = Area;
        var $form;
        var form;
        var $;
        layui.use(['jquery', 'form'], function() {
            $ = layui.jquery;
            form = layui.form();
            $form = $('form');
            loadProvince();
        });
         //加载省数据
        function loadProvince() {
            var proHtml = '';
            for (var i = 0; i < areaData.length; i++) {
                proHtml += '<option value="' + areaData[i].provinceCode + '_' + areaData[i].mallCityList.length + '_' + i + '">' + areaData[i].provinceName + '</option>';
            }
            //初始化省数据
            $form.find('select[name=province]').append(proHtml);
            form.render();
            form.on('select(province)', function(data) {
                $form.find('select[name=area]').html('<option value="">请选择县/区</option>').parent().hide();
                var value = data.value;
                var d = value.split('_');
                var code = d[0];
                var count = d[1];
                var index = d[2];
                if (count > 0) {
                    loadCity(areaData[index].mallCityList);
                } else {
                    $form.find('select[name=city]').parent().hide();
                }
            });
        }
         //加载市数据
        function loadCity(citys) {
            var cityHtml = '';
            for (var i = 0; i < citys.length; i++) {
                cityHtml += '<option value="' + citys[i].cityCode + '_' + citys[i].mallAreaList.length + '_' + i + '">' + citys[i].cityName + '</option>';
            }
            $form.find('select[name=city]').html(cityHtml).parent().show();
            form.render();
            form.on('select(city)', function(data) {
                var value = data.value;
                var d = value.split('_');
                var code = d[0];
                var count = d[1];
                var index = d[2];
                if (count > 0) {
                    loadArea(citys[index].mallAreaList);
                } else {
                    $form.find('select[name=area]').parent().hide();
                }
            });
        }
         //加载县/区数据
        function loadArea(areas) {
            var areaHtml = '';
            for (var i = 0; i < areas.length; i++) {
                areaHtml += '<option value="' + areas[i].areaCode + '">' + areas[i].areaName + '</option>';
            }
            $form.find('select[name=area]').html(areaHtml).parent().show();
            form.render();
            form.on('select(area)', function(data) {
                //console.log(data);
            });
        }
    </script>
</body>
</html>
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Layui是一种基于layui框架的前端UI库,可以方便地在网页中创建动态表格和下拉框组件。 使用Layui动态表格带搜索的下拉框,首先需要引入LayUI的相关文件,如layui.css、layui.js等。然后,在HTML中定义一个表格容器,可以使用div标签,并给它一个id,方便后续的操作。 接下来,在JavaScript中通过Layui的table模块进行表格的初始化和渲染。我们可以使用table.render()方法,传入一些参数来定义表格的样式、列属性以及数据源等。在其中的cols配置项中,我们可以定义表格的列,包括列头名称、字段名、宽度等信息。此时,我们可以在列的属性中增加一个toolbar属性,来定义表格的工具栏。 其中的toolbar可以是一个函数,用于渲染每一行的工具栏内容。我们可以在这个函数中创建一个下拉框,通过Layuiform模块进行渲染和监听。我们可以使用form.on()方法来监听下拉框的选中事件,并在监听函数中处理相应的逻辑。 在表格中,我们可以使用formSelects组件,它是一个基于Layui的多选、搜索等功能的下拉框插件。我们可以通过定义一个元素的class为select,然后使用formSelects.render()方法来渲染下拉框。可以定义一些参数,例如最多可选的数量、搜索框的位置等。 总结来说,要使用Layui动态表格带搜索的下拉框,我们需要引入Layui的相关文件,然后在HTML中定义表格容器,并在JavaScript中使用Layui的table模块进行表格的初始化和渲染。在列属性中,我们可以添加一个toolbar属性来定义行的工具栏。可以使用form.on()方法监听下拉框的选中事件,并在监听函数中处理逻辑。同时,也可以使用formSelects组件来实现多选、搜索等功能的下拉框。通过这些步骤,我们可以方便地实现Layui动态表格带搜索的下拉框的使用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值