一、错误方向
起初,我按照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
 
                
 微信扫一扫
                                                            微信扫一扫                                                     支付宝扫一扫
                                                            支付宝扫一扫                                                     
            