我在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() {
  }
});

javascript - 日历使用jQuery多日期选择器跳至当月-LMLPHP

javascript - 日历使用jQuery多日期选择器跳至当月-LMLPHP

谁能帮我解决这个问题?

最佳答案

很好的问题。

我没有在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/

10-14 10:36
查看更多