我在HTML中使用jQuery多日期选择器。当我在日期选择器中选择第一个日期时,它可以正常工作,但是当我选择第二个日期时,它跳至当前月份,但日期选择器值已附加到输入框。
我不知道我在这段代码中做错了什么:
$('#datePick').multiDatesPicker({
beforeShowDay: my_array,
// For disabling all "Sundays"
dateFormat: "d/m/yy",
maxDate: "+3m",
minDate: "-1m",
multidate: true,
addDisabledDates: My_array,
onSelect: function load() {
}
});
谁能帮我解决这个问题?
最佳答案
很好的问题。
我没有在documentation中找到任何东西来解决您注意到的奇怪行为。
在我看来,这真的像是个 bug 。
我进行了处理,并使用onSlect
回调找到了解决方法。
但这意味着要禁用任何显示/隐藏内置动画。
我认为这没什么大不了的...
请参阅this CodePen demo,在该问题上可以重新创建问题并将其与该解决方案进行比较。
而且,下面是易于剪切和粘贴的代码(没有演示的所有console.logs)。
$('#datePickTweaked').multiDatesPicker({
// OPTIONS
showAnim:"", // Disables the show/hide animation.
beforeShowDay: $.datepicker.noWeekends, // No week-ends.
dateFormat: "d/m/yy",
maxDate: "+3m",
minDate: "-1m",
multidate: true,
defaultDate:"0d", // Default date selection as of "today".
// Needed to show the right month on focus.
// The "walk-around" is HERE, in the "onSlect" callback.
onSelect: function(){
// Get the "datepicker" object.
var datepickerObj = $(this).data("datepicker");
// Get the "settings" object within "datepicker".
var datepickerSettings = datepickerObj.settings;
// Get the last date picked.
var tempDay = datepickerObj.selectedDay;
var tempMonth = datepickerObj.selectedMonth+1;
var tempYear = datepickerObj.selectedYear;
var pickedDate = tempDay+"/"+tempMonth+"/"+tempYear;
// Remove previous "defaultDate" property.
delete datepickerSettings["defaultDate"];
// Add a new defaultDate property : value.
datepickerSettings.defaultDate=pickedDate;
// "Hacky trick" to avoid having to click twice on prev/next month.
$("#datePickTweaked").blur();
setTimeout(function(){
$("#datePickTweaked").focus();
},1); // 1 millisecond delay seems to be enought!!!
}
});
关于javascript - 日历使用jQuery多日期选择器跳至当月,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40234488/