layui下拉框select通过Ajax动态加载数据后,动态渲染选中的值

其中分为两种

1:select中的数据是在页面中写死的,需要从后端取值后判断选中哪一个

 /* 选择select的id 直接赋值 */
 $("#source").val(data.obj.source);
 layui.form.render('select');

2: 动态渲染select后,再选择想要的option

主要是两个方法,掺杂一点小逻辑,亲测有效!

一个方法去后台查询下拉框列表,如果是添加页面,不需要赋值,修改页面则赋值后再渲染

/* 去后台查询出 下拉框 的列表
            *   tid为选中的select的值
            *  */
            function typeList(tid) {
                $.ajax({
                    url:"/commodity_type/list",
                    type:"post",
                    dataType:"json",
                    success:function (data){
                        if (data.code==200){
                            $("#tid").append('<option value="">请选择商品类型</option>');
                            for(var i=0;i<data.obj.length;i++){
                                /* 判断要选中哪一个 */
                                if (tid==data.obj[i].id){
                                    $("#tid").append('<option value="'+data.obj[i].id+'" selected>'+data.obj[i].name+'</option>');
                                }else{
                                    $("#tid").append('<option value="'+data.obj[i].id+'">'+data.obj[i].name+'</option>');
                                }
                            }
                        }
                        layui.form.render('select');
                    }
                });
            }

            /* id=0是添加页面,否则是修改页面 */
            var id = $("#cid").val();
            if (id!=0){
                $.ajax({
                    url:"/commodity/commodityById",
                    type:"post",
                    data:{"id":id},
                    dataType:"json",
                    success:function (data){
                        if (data.code==200){
                            $("#cid").val(data.obj.id);
                            $("#cname").val(data.obj.cname);
                            $("#buy_price").val(data.obj.buy_price);
                            $("#sell_price").val(data.obj.sell_price);
                            $("#brand").val(data.obj.brand);
                            $("#address").val(data.obj.address);

                            $("#source").val(data.obj.source);
                            /*
                                在这里调用刚刚的方法去渲染 下拉框
                            */
                            typeList(data.obj.tid);
                        }
                    }
                });
            }else{
                /* 添加页面的话,不用选中,可以不传值 */
                typeList();
            }

水一些字数:===========================================================================================================================================================================================================================

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 首先引入layui组件库和jQuery库 ```html <!-- 引入layui组件库 --> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/layui/2.5.6/css/layui.min.css" integrity="sha384-Bdk6U5D6umgKlLa5fWl5XZgI0ZUuV7Q2bKkOz7cO+VDfOMJ7CvPKaKjDhJzK9Zk1" crossorigin="anonymous"> <script src="https://cdn.bootcdn.net/ajax/libs/layui/2.5.6/layui.min.js" integrity="sha384-vd1YSOZrKwYh3zJbW8+OJzr4gOf4Z9AqKj8xv6JFy6g5Q5U5H6lKvJU5aZn/9Znt" crossorigin="anonymous"></script> <!-- 引入jQuery库 --> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha384-J6GCwI7a+Y7a5ssA7nL4p4YwcXnr3j+yLvTC7adK3Ri5A5V5diWk5jJvMvZb+aK9" crossorigin="anonymous"></script> ``` 2. 在页面中添一个空的下框组件 ```html <select id="select"></select> ``` 3. 使用jQuery动态框选项 ```javascript // 获取下框元素 var selectElem = $('#select'); // 模拟获取数据 var data = [ {id: 1, name: '选项一'}, {id: 2, name: '选项二'}, {id: 3, name: '选项三'}, ]; // 遍历数据动态选项 $.each(data, function(i, item){ var optionElem = $('<option></option>'); optionElem.val(item.id); optionElem.text(item.name); selectElem.append(optionElem); }); // 使用layui组件渲染layui.use(['form'], function(){ var form = layui.form; form.render('select'); }); ``` 4. 完整代码 ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>动态框组件,并且渲染数据</title> <!-- 引入layui组件库 --> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/layui/2.5.6/css/layui.min.css" integrity="sha384-Bdk6U5D6umgKlLa5fWl5XZgI0ZUuV7Q2bKkOz7cO+VDfOMJ7CvPKaKjDhJzK9Zk1" crossorigin="anonymous"> <script src="https://cdn.bootcdn.net/ajax/libs/layui/2.5.6/layui.min.js" integrity="sha384-vd1YSOZrKwYh3zJbW8+OJzr4gOf4Z9AqKj8xv6JFy6g5Q5U5H6lKvJU5aZn/9Znt" crossorigin="anonymous"></script> <!-- 引入jQuery库 --> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha384-J6GCwI7a+Y7a5ssA7nL4p4YwcXnr3j+yLvTC7adK3Ri5A5V5diWk5jJvMvZb+aK9" crossorigin="anonymous"></script> </head> <body> <!-- 空的下框组件 --> <select id="select"></select> <script> // 获取下框元素 var selectElem = $('#select'); // 模拟获取数据 var data = [ {id: 1, name: '选项一'}, {id: 2, name: '选项二'}, {id: 3, name: '选项三'}, ]; // 遍历数据动态选项 $.each(data, function(i, item){ var optionElem = $('<option></option>'); optionElem.val(item.id); optionElem.text(item.name); selectElem.append(optionElem); }); // 使用layui组件渲染layui.use(['form'], function(){ var form = layui.form; form.render('select'); }); </script> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值