Как предотвратить нажатие на даты и отображать предупреждение в bootstrap datepicker? - PullRequest
0 голосов
/ 12 марта 2020

Итак, мой код такой, как показано ниже:

var date = new Date();
var active_dates = [<?php 
                $i=0;   
                for($i=0;$i<=count($booked_dates);$i++) {
                    echo "'".$booked_dates[$i]."',";
                }
            ?>];
    date.setDate(date.getDate()+1);
    $('#single_datepicker_1').datepicker({
        rtl: KTUtil.isRTL(),
        todayHighlight: true,
        templates: arrows,
        startDate: date, //disable all old dates
        setDate: date, //tomorrow's date allowed
        multidate: true,
        format: 'dd/mm/yyyy',

         beforeShowDay: function(date){
                 var d = date;
                 var curr_date = d.getDate();
                 var curr_month = d.getMonth() + 1; //Months are zero based
                 var curr_year = d.getFullYear();
                 var formattedDate = curr_date + "/" + curr_month + "/" + curr_year

                 if ($.inArray(formattedDate, active_dates) != -1){
                   return {
                      classes: 'bookedDates'
                   };
                 }
              return;
          }
        //maxDate: '28/12/2019'

    });

Теперь код, который запрещает регистрируемые даты, может быть активирован и отображать предупреждающее сообщение:

    $('.bookedDates').click(function(event) {
    console.log('Preventing');
    event.preventDefault();
    event.stopPropagation();

    alert("fdf");
});

Теперь, основываясь на приведенном выше коде, мой DatePicker выглядит как показано ниже:

enter image description here

Однако проблема заключается в том, что когда я go до следующего месяца, например, апрель, тогда предупреждающее сообщение не отображается и причина в том, что апрель месяц изначально не загружен на DatePicker. Текущий месяц - март.

Поэтому, если вы нажмете на любую из указанных ниже дат, предупреждение не будет отображаться:

enter image description here

может Кто-нибудь, пожалуйста, дайте мне знать, что я должен сделать, чтобы предупредительное сообщение отображалось, если я нажму на даты апреля месяца. Спасибо:)

1 Ответ

0 голосов
/ 12 марта 2020

Библиотека предоставляет возможность отключить некоторые даты. Просто передайте это как часть ваших опций.

datesDisabled: [date_sttings],

Или вы можете передать одну строку даты. Обратите внимание, что строки даты должны соответствовать формату даты, который вы уже определили.

В качестве альтернативы вы можете иметь массив отключенных дат. И когда пользователи выбирают дату. Сначала вы проверяете, находится ли он в массиве отключенных дат. Если это так, то вы показываете предупреждение и выполняете другие действия по своему усмотрению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...