laydate 在 页面打印后不能用了
<div class="col-sm-3">
<div class="input-group">
<div class="input-group-btn">
<button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button">开票日期从</button>
</div>
<input type="text" class="form-control layer-date" onclick="checkStarTime();" id="ticketTime_star" name="ticketTime_sar" value="${ticketTime_star}" autocomplete="off" />
</div>
<div class="lineH"></div>
<div class="input-group">
<div class="input-group-btn">
<button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button">开票日期至</button>
</div>
<input type="text" class="form-control layer-date" onclick="checkTime();" id="ticketTime_end" name="ticketTime_end" value="${ticketTime_end}" autocomplete="off" />
</div>
</div>
//打印的代码就是这个
let bdhtml = window.document.body.innerHTML;
window.print(); //调用浏览器的打印功能
window.document.body.innerHTML = bdhtml; // 最后还原页面
/**
* 开票日期从
*/
function checkStarTime() {
$('#ticketTime_end').val('');
laydate({
istime: false,
min: '2020-01-01',
max: now,
format: 'YYYY-MM-DD',
})
}
/**
* 开票日期至
*/
function checkTime() {
var time = "";
var M = 0;
var startTime = $('#ticketTime_star').val().split('-');
if(startTime[1] == '12') {
time = (+startTime[0] + 1) + '-' + '01-' + startTime[2];
}else {
if(+startTime[1] + 1 > 9) {
M = +startTime[1] + 1;
}else {
M = '0' + (+startTime[1] + 1);
}
time = startTime[0] + '-' + M + '-' + startTime[2];
};
if(time > now) {
time = now;
}
laydate({
istime: false,
format: 'YYYY-MM-DD',
min: $('#ticketTime_star').val(),
max: time
})
}
打印后laydate就不生效了
解决方法:
1.利用事件代理,全部委托给document,然后通过targe确定事件源
2.统一管理监听事件注销
这些我测试了一下是有用的 但是在代码里都不管用
还有什么其他方法吗