layui根据自己设置formSelects自定义加载数据和渲染已选中得值

本文介绍了如何在layui中根据自己的设置,自定义formSelects组件的数据加载,并详细阐述了如何在成功获取数据后,利用shopFormSelects.value方法设置选中值。特别指出,无论单个还是多个选中值,id后面都应使用[]进行设置,多个值之间用逗号分隔。

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

 layui根据自己设置formSelects自定义加载数据和渲染已选中得值,在success里拿到数据后设置选中值就可以。

默认用layui.formSelects.value(id, [result.data[0].id]);,我赋给shopFormSelects = layui.formSelects;,这里用的就是

shopFormSelects.value(id, [result.data[0].id]);,id后面必须用 [] 去设置,单个也要用,多个用逗号隔开。

<script type="text/javascript">
layui.use(['jquery', 'formSelects'], function(){
     shopFormSelects = layui.formSelects;
     shopFormSelects.config('shopId', {
         type: 'get',                //请求方式: post, get, put, delete...
         header: {},                 //自定义请求头
         data: {},                   //自定义除搜索内容外的其他数据
         searchUrl: '${appPath}/back/shopInfo/queryShopListByBaseUser',   //搜索地址, 默认使用xm-select-search的值, 此参数优先级高
         searchName: 'shopName',      //自定义搜索内容的key值
         searchVal: '',              //自定义搜索内容, 搜素一次后失效, 优先级高于搜索框中的值
         keyName: 'shopName',            //自定义返回数据中name的key, 默认 name
         keyVal: 'id',            //自定义返回数据中value的key, 默认 value
         keySel: 'selected',         //自定义返回数据中selected的key, 默认 selected
         keyDis: 'disabled',         //自定义返回数据中disabled的key, 默认 disabled
         keyChildren: 'children',    //联动多选自定义children
         delay: 500,                 //搜索延迟时间, 默认停止输入500ms后开始搜索
         direction: 'auto',          //多选下拉方向, auto|up|down
         response: {
             statusCode: 0,          //成功状态码
             statusName: 'code',     //code key
             msgName: 'msg',         //msg key
             dataName: 'data'        //data key
         },
         success: function(id, url, searchVal, result){      //使用远程方式的success回调
             console.log(id);        //组件ID xm-select
             console.log(url);       //URL
             console.log(searchVal); //搜索的value
             console.log(result);    //返回的结果
             console.log("length:" + result.data.length)
             if(result.data.length == 1){
             //此处是设置默认选中,shopFormSelects = layui.formSelects;我是重新定义了一下对象,根据自己需求,[]里单个值直接写,多个用逗号分隔开,shopFormSelects.value(id, [result.data[0].id,result.data[1].id]);
                 shopFormSelects.value(id, [result.data[0].id]);//我这里考虑长度只有1的情况,所以我加了判断只有1,默认选这一个
             }
         },
         error: function(id, url, searchVal, err){           //使用远程方式的error回调
             //同上
             console.log(err);   //err对象
         },
         beforeSuccess: function(id, url, searchVal, result){        //success之前的回调, 干嘛呢? 处理数据的, 如果后台不想修改数据, 你也不想修改源码, 那就用这种方式处理下数据结构吧
             console.log(id);        //组件ID xm-select
             console.log(url);       //URL
             console.log(searchVal); //搜索的value
             console.log(result);    //返回的结果

             return result;  //必须return一个结果, 这个结果要符合对应的数据结构
         },
         beforeSearch: function(id, url, searchVal){         //搜索前调用此方法, return true将触发搜索, 否则不触发
             if(!searchVal){//如果搜索内容为空,就不触发搜索
                 return false;
             }
             return true;
         },
         clearInput: false,          //当有搜索内容时, 点击选项是否清空搜索内容, 默认不清空
     }, false);

     shopFormSelects.on('shopId', function(id, vals, val, isAdd, isDisabled){
         //id:           点击select的id
         //vals:         当前select已选中的值
         //val:          当前select点击的值
         //isAdd:        当前操作选中or取消
         //isDisabled:   当前选项是否是disabled
         queryProds(val.id);//点击调用方法
     }, true);
 });
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值