• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

清宇诺诺

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

layer 三级联动的实现

记录下,以便于下次使用:

HTML:
<div class="layui-form">
                                    <div class="layui-inline">
                                        <select name="d_province" class="state" lay-filter="state">
                                            <option value="0">请选择</option>
                                        </select>
                                    </div>
                                    <div class="layui-inline">
                                        <select name="d_city" class="state" lay-filter="state">
                                            <option value="0">请选择</option>
                                        </select>
                                    </div>
                                    <div class="layui-inline">
                                        <select name="d_area" class="state" lay-filter="state">
                                            <option value="0">请选择</option>

                                        </select>
                                    </div>

                                </div>

JS:

 var $ = layui.jquery;
        var form = layui.form();
        var laydate = layui.laydate;

        //三级联动
        //如果有需要到镇的改改就可以实现
        var url = '/Shipper/City/GetCityList'; //数据请求地址
        var province = "广东省"; //编辑需要的省
        var city = "广州市"; //编辑需要的市
        var district = "天河区"; //编辑需要的县/区
        getJSON(url, $("select[name='d_province']").closest("div"));
        form.on('select(state)', function (data) {

            debugger;
            $that = $(data.elem);
            urls = url + "?pid=" + data.value;
            getJSON(urls, $that.closest("div").next());
        });
        function getJSON(urls, even) {
            $.getJSON(urls, function (json) {
                var pid = 0;
                var name = even.find("select").attr("name");
                var select = "<select name=\"" + name + "\" lay-filter=\"state\">";
                select += "<option value=\"0\">请选择 </option>";
                $(json).each(function () {
                    select += "<option value=\"" + this.AreaId + "\"";
                    if (province == this.AreaName || city == this.AreaName || district == this.AreaName) {
                        select += " selected=\"selected\" ";
                        pid = this.AreaId;
                    }
                    select += ">" + this.AreaName + "</option>";
                });
                select += "</select>";
                even.html(select);
                var nextName = even.next().find("select").attr("name");
                even.next().html("<select name=\"" + nextName + "\" lay-filter=\"state\"><option value=\"0\">请选择 </option></select>");
                form.render('select');
                if (pid != 0) {
                    getJSON(url + "?pid=" + pid, even.next());
                }
            });
        }

 

posted on 2017-11-20 15:02  清宇诺诺  阅读(4572)  评论(1)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3