一、错误方向
起初,我按照jquery的方法,定义了year和month,值是对应dom元素的val,奇怪的是,我在laydate中改变这两个值,并没有传递出来,故而一开始我的方向是怎么将laydate的值传出。
1 2 |
var year = $("#data_year").val(); var month = $("#data_month").val(); |
尝试搜索后,能通过好几种方式更新这个值,这些方法包括:
1 2 |
$("#data_year").change(); year = $("#data_year").val(); |
1 |
year(value); |
前提是必须用laydate提供的done来操作,如下:
1 2 3 4 |
done: function (value, date, endDate) { $("#data_year").change(); year = $("#data_year").val(); } |
通过console,确实能打印出新的值:
1 |
console.log(year, month); |
二、upload任然没有更新
我需要获取laydate的值,组合作为URL,传递给后端作为输入判断,所以URL中需要laydate选中的这个新值。
1 2 3 4 |
upload.render({ url: "/index/tools/dataInputApi" + '/year/' + year + '/month/' + month, ...... }); |
尝试通过form表单来更新所有元素:
1 |
form.render(); |
任然不行。
三、需要更新的是upload
layui 2.5.0 开始,新增了重载upload的方法,也就是之前的思路都错了,render后,URL的值已经写死,外部更新,对upload是一点影响没有。
所以,我们需要在laydate中,这样操作:
1 2 3 4 5 6 7 8 |
done: function (value, date, endDate) { $("#data_month").change(); month = $("#data_month").val(); console.log(year, month); uploadInst.reload({ url: "/index/tools/dataInputApi" + '/year/' + year + '/month/' + month, }); } |
重载实例之前,可别忘了创建一个实例,也就是对应的upload实例化:
1 2 3 |
var uploadInst = upload.render({ ...... }); |
原创文章,作者:蓝洛水深,如若转载,请注明出处:https://blog.lanluo.cn/10458