layUI上传文件传参无法获取(下拉列表的参数)

编程入门 行业动态 更新时间:2024-10-25 08:23:54

layUI<a href=https://www.elefans.com/category/jswz/34/1770844.html style=上传文件传参无法获取(下拉列表的参数)"/>

layUI上传文件传参无法获取(下拉列表的参数)

废话不说,直接上代码:

//下拉列表-年份var nowyear;function getYear(){nowyear = new Date().getFullYear(); //获取当前年份// var sel = document.getElementById ('sel');//获取select下拉列表var option = '';for ( var i = nowyear; i >= 2018; i--)//获取下拉框的值,从2018年到当前年{option += "<option value="+i+">"+i+"</option>";}$('#sel').html(option);form.render('select');}//获取下拉列表的年份form.on('select(sel)', function(data){nowyear.val(data.value);});upload.render({elem: '#uploadDetailData' //绑定按钮, url: '/payableInfo/uploadDetailData?year='+nowyear, accept: 'file' //普通文件, done: function (res) {if (count != 0) {layer.msg("上传成功! \n成功上传"+count+"条数据 \n耗时"+time+"毫秒", {icon: 6});infoTable();} else {layer.msg("上传失败!", {icon: 5});}}});

在运行时会遇到一个问题,如下图的下拉列表作为参数传到后台

但是,真正跑起来时

url: '/payableInfo/uploadDetailData?year='+nowyear

url后带的参数一直是默认的2019,也就是说一直是默认值,后来咨询了一下大佬,最终给的解释是:upload.render的渲染顺序早于获取下拉列表值,当你还没有获取到下拉列表的值时就已经渲染完了.

因此解决方法就是,要么把最终的参数给他,要么想办法,传一个可以改变的参数.
于是我想到了,把upload.render()嵌套到 form.on(‘select(sel)’, function(data){};发现这样上传按钮直接就不能使用了,于是就有了
最后的解决方法:
我发现从 layui 2.1.0 开始,才有的before属性可供传值

before: function (obj) {this.data = {"nowyear": nowyear}///携带额外的数据

就可以在后台动态获取了!

本篇文章的重点不是使用before,而是说一下不使用before传参数的弊端(手动滑稽)

更多推荐

layUI上传文件传参无法获取(下拉列表的参数)

本文发布于:2023-07-28 22:06:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1336283.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:上传文件   参数   列表   layUI

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!