layui的下拉框动态赋值

1 篇文章 0 订阅

代码说明部分

第一步:先把layui官方给的模板粘到自己的前端
注:下面的代码是我直接从layui官网粘过来的

<div class="layui-form-item">
    <label class="layui-form-label">选择框</label>
    <div class="layui-input-block">
      <select name="city" lay-verify="required">
        <option value=""></option>
        <option value="0">北京</option>
        <option value="1">上海</option>
        <option value="2">广州</option>
        <option value="3">深圳</option>
        <option value="4">杭州</option>
      </select>
    </div>
</div>

第二步:再把上面的代码删除到最简的样式 如下代码片段所示 中间内容根据自己的修改

<div class="layui-form-item">
	<label class="layui-form-label">所属院系</label>
		<div class="layui-input-block">
           <select name="dp" id="dp" lay-verify="required" lay-filter="xmFilter">
               <option value=""></option>
           </select>
        </div>
</div>

第三步:编写js文件,实现动态赋值

<script>
       //下拉框可能会用到 New option
       //这个里面的参数说明 第一个是显示的文本,第二个是value值 
       //例如:new Option(item.xm, item.id)第一个参数是下拉列表中显示的值  第二个参数是选中传递给后台的值
        layui.use(['form', 'upload', 'layer'],function(){
            var form = layui.form;
            $.ajax({
                url: 'department_json.php',
                dataType: 'json',
                type: 'get',
                success: function (data) {
                    console.log(data);//下面会提到这个data是什么值
                    //使用循环遍历,给下拉列表赋值
                    $.each(data.data, function (index, value) {
                        // console.log(value.department_id);
                        $('#dp').append(new Option(value.department_name,value.department_id));// 下拉菜单里添加元素
                    });
                    layui.form.render("select");//重新渲染 固定写法
                }
            })
        });
</script>

可能很多人会问,这个数据从什么地方来,这就要看你们后台给你们什么样的数据了
我的后台数据是这个样子的

{"code":0,"msg":"","count":4,"data":[{"id":"1","department_id":"10001","department_name":"信息工程学院"},{"id":"2","department_id":"10002","department_name":"人文学院"},{"id":"3","department_id":"10003","department_name":"电子工程学院"},{"id":"6","department_id":"1111222","department_name":"11111222"}]}

格式化后的数据格式为

{
  "code": 0,
  "msg": "",
  "count": 4,
  "data": [
    {
      "id": "1",
      "department_id": "10001",
      "department_name": "信息工程学院"
    },
    {
      "id": "2",
      "department_id": "10002",
      "department_name": "人文学院"
    },
    {
      "id": "3",
      "department_id": "10003",
      "department_name": "电子工程学院"
    },
    {
      "id": "6",
      "department_id": "1111222",
      "department_name": "11111222"
    }
  ]
}

其实这个data就是我们响应回来的json数据
在这里插入图片描述
但是我的数据是在data中
在这里插入图片描述
所以我会在这里用data.data 去循环我自己data中的值

$.each(data.data, function (index, value) {
   	// console.log(value.department_id);
    $('#dp').append(new Option(value.department_name,value.department_id));// 下拉菜单里添加元素
});

这个value是什么值呢? 我们可以打印出来看下
在这里插入图片描述
我们可以清晰的看见就是通过each循环 打印出了每一行的值 再取我们要的值就可以了 例如我们要id 就可以直接写成value.id

演示结果部分在这里插入图片描述

  • 30
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
layui是一个轻量级的前端 UI 框架,它提供了丰富的组件和便捷的开发工具。在layui中,给下框(select)赋值通常涉及初始化下框并设置选项。这里是一个简单的示例: ```html <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="https://unpkg.com/layui@2.9.3/layui.css"> <script src="https0://unpkg.com/layui@2.9.3/layui.js"></script> </head> <body> <div id="select-box"></div> <script> layui.use('laydate', function () { var laydate = layui.laydate; // 引入laydate模块 // 初始化下框 var select = layui.select({ placeholder: '请选择一项', multiple: true, // 是否多选,默认单选 // 这里可以添加你的数据源,也可以是一个数组或JSON对象 options: [ { value: 'option1', name: '选项1' }, { value: 'option2', name: '选项2' }, { value: 'option3', name: '选项3' } ] }).on('change', function (data) { console.log('选择的值:', data); }); // 如果需要动态加载数据,可以使用laydate的数据方法获取 // laydate.data('select-id', {}).then(function (res) { // select.render(res); // 更新下框选项 // }); }); </script> </body> </html> ``` 在这个例子中,`layui.select`方法用于创建下框,`options`属性用于设置初始选项。当用户选择后,`change`事件会被触发,显示所选的值。 如果你需要动态加载数据,可以利用layui提供的数据方法(如`laydate.data`),获取到数据后再调用`select.render`方法更新下框。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值