Bug复现详细描述:先选择今日日期,然后点击下个月的某个日期,注意,是直接点击下个月的某个日期,不能通过日期显示tab的下个月箭头进入下个月再来点击某个日期,然后再直接点击本月的今日日期。然后bug会出现,你会发现日期直接到了这个月的前一个月的今天。
例如:今天是2017年6月30日,打开日期点击选择7月1日。然后点击日期,选择回6月30日。你会发现日期变成了5月30日。
修复:bootstrap-datepicke源码:源码中搜索 click事件,你会发现只有一个click事件。然后将下面这段代码
if (target.hasClass('old')){
if (month === 0) {
month = 11;
year = year - 1;
monthChanged = true;
yearChanged = true;
} else{
month = month - 1;
monthChanged = true;
}
}
增加一个判断,改为
if (target.hasClass('old')){
if (month === 0) {
month = 11;
year = year - 1;
monthChanged = true;
yearChanged = true;
} else if(!target.hasClass('today')){
month = month - 1;
monthChanged = true;
}else {
monthChanged = true;
}
}
OK。问题解决。原创文章,转载请附上本文链接。谢谢!