共计 1803 个字符,预计需要花费 5 分钟才能阅读完成。
一、错误方向
起初,我按照 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({
......
});
|
正文完